{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "d2269470-6a29-4bd7-afdb-bc2621546385",
   "metadata": {},
   "outputs": [],
   "source": [
    "from glob import glob\n",
    "import pandas as pd\n",
    "from scipy.stats import spearmanr, fisher_exact\n",
    "from statsmodels.sandbox.stats.multicomp import multipletests\n",
    "import numpy as np\n",
    "import seaborn as sns\n",
    "\n",
    "sns.set_context('talk')\n",
    "sns.set(rc={\"figure.dpi\":150, 'savefig.dpi':300})\n",
    "sns.set_style('whitegrid')\n",
    "\n",
    "def p_adjust(pvalues, method='fdr_bh'):\n",
    "    res = multipletests(pvalues, method=method)\n",
    "    return np.array(res[1], dtype=float)\n",
    "\n",
    "def measure_enrichment(sig_kos, modules, all_module_kos):\n",
    "    enrichment_rows = list()\n",
    "    for module, module_kos in modules.items():\n",
    "        in_in = len(sig_kos & module_kos)  # in module and in gene set\n",
    "        in_out = len(sig_kos - module_kos)  # in gene set and out of module\n",
    "        out_in = len(module_kos - sig_kos)  # in module and out of gene set\n",
    "        out_out = len(all_module_kos - module_kos - sig_kos)\n",
    "\n",
    "        odds_ratio, p_value = fisher_exact([[in_in, in_out],\n",
    "                                            [out_in, out_out]], alternative='greater')\n",
    "        enrichment_rows.append([module, len(module_kos), in_in, in_out, out_in, out_out, odds_ratio, p_value])\n",
    "    enrichment = pd.DataFrame(enrichment_rows, columns=['module', 'module_size', 'in_in', 'in_out', 'out_in', 'out_out', 'odds_ratio', 'p_value']).set_index('module').sort_values('p_value')\n",
    "    enrichment['p_adj'] = p_adjust(enrichment['p_value'])\n",
    "    return enrichment"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7891f896-fa3c-4821-bd9c-ae78e4da9feb",
   "metadata": {},
   "source": [
    "# Correlate titers with KOs"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "19de6768-51db-4a07-882b-fb3617db5e19",
   "metadata": {},
   "source": [
    "## Read in data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "3cdd5870-2dfc-4ec4-a6fb-4db88e55d229",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SubmissionType</th>\n",
       "      <th>SampleNumber</th>\n",
       "      <th>SampleIDValidation</th>\n",
       "      <th>DiversigenCheckInSampleName</th>\n",
       "      <th>BoxLocation</th>\n",
       "      <th>SampleType</th>\n",
       "      <th>SampleSource</th>\n",
       "      <th>SequencingType</th>\n",
       "      <th>BabyN</th>\n",
       "      <th>BabyN_checked</th>\n",
       "      <th>...</th>\n",
       "      <th>median_mmNorm_PCV</th>\n",
       "      <th>median_mmNorm_DTAPHib</th>\n",
       "      <th>protectNorm_Dip</th>\n",
       "      <th>protectNorm_TET</th>\n",
       "      <th>protectNorm_PRP (Hib)</th>\n",
       "      <th>protectNorm_PT</th>\n",
       "      <th>protectNorm_PRN</th>\n",
       "      <th>protectNorm_FHA</th>\n",
       "      <th>geommean_protectNorm</th>\n",
       "      <th>VR_group_v2</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SampleID</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>106_V2</th>\n",
       "      <td>Primary in Tube</td>\n",
       "      <td>69</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Box 8, F3</td>\n",
       "      <td>Stool</td>\n",
       "      <td>Human Infant</td>\n",
       "      <td>MetaG</td>\n",
       "      <td>106</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>0.061955</td>\n",
       "      <td>0.052874</td>\n",
       "      <td>2.1</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.6</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>1.375</td>\n",
       "      <td>1.140388</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>106_V6</th>\n",
       "      <td>Primary in Tube</td>\n",
       "      <td>121</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Box 10, C1</td>\n",
       "      <td>Stool</td>\n",
       "      <td>Human Infant</td>\n",
       "      <td>MetaG</td>\n",
       "      <td>106</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>0.061955</td>\n",
       "      <td>0.052874</td>\n",
       "      <td>2.1</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.6</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>1.375</td>\n",
       "      <td>1.140388</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>106_V7</th>\n",
       "      <td>Primary in Tube</td>\n",
       "      <td>158</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Box 11, C3</td>\n",
       "      <td>Stool</td>\n",
       "      <td>Human Infant</td>\n",
       "      <td>MetaG</td>\n",
       "      <td>106</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>0.061955</td>\n",
       "      <td>0.052874</td>\n",
       "      <td>2.1</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.6</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>1.375</td>\n",
       "      <td>1.140388</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>106_S_1</th>\n",
       "      <td>Primary in Tube</td>\n",
       "      <td>162</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Box 11, D1</td>\n",
       "      <td>Stool</td>\n",
       "      <td>Human Infant</td>\n",
       "      <td>MetaG</td>\n",
       "      <td>106</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>0.061955</td>\n",
       "      <td>0.052874</td>\n",
       "      <td>2.1</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.6</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>1.375</td>\n",
       "      <td>1.140388</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>106_A1</th>\n",
       "      <td>Primary in Tube</td>\n",
       "      <td>188</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Box 12, B3</td>\n",
       "      <td>Stool</td>\n",
       "      <td>Human Infant</td>\n",
       "      <td>MetaG</td>\n",
       "      <td>106</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>0.061955</td>\n",
       "      <td>0.052874</td>\n",
       "      <td>2.1</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2.6</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>1.375</td>\n",
       "      <td>1.140388</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 86 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           SubmissionType  SampleNumber  SampleIDValidation  \\\n",
       "SampleID                                                      \n",
       "106_V2    Primary in Tube            69                 NaN   \n",
       "106_V6    Primary in Tube           121                 NaN   \n",
       "106_V7    Primary in Tube           158                 NaN   \n",
       "106_S_1   Primary in Tube           162                 NaN   \n",
       "106_A1    Primary in Tube           188                 NaN   \n",
       "\n",
       "         DiversigenCheckInSampleName BoxLocation SampleType  SampleSource  \\\n",
       "SampleID                                                                    \n",
       "106_V2                           NaN   Box 8, F3      Stool  Human Infant   \n",
       "106_V6                           NaN  Box 10, C1      Stool  Human Infant   \n",
       "106_V7                           NaN  Box 11, C3      Stool  Human Infant   \n",
       "106_S_1                          NaN  Box 11, D1      Stool  Human Infant   \n",
       "106_A1                           NaN  Box 12, B3      Stool  Human Infant   \n",
       "\n",
       "         SequencingType  BabyN  BabyN_checked  ... median_mmNorm_PCV  \\\n",
       "SampleID                                       ...                     \n",
       "106_V2            MetaG    106            NaN  ...          0.061955   \n",
       "106_V6            MetaG    106            NaN  ...          0.061955   \n",
       "106_V7            MetaG    106            NaN  ...          0.061955   \n",
       "106_S_1           MetaG    106            NaN  ...          0.061955   \n",
       "106_A1            MetaG    106            NaN  ...          0.061955   \n",
       "\n",
       "          median_mmNorm_DTAPHib protectNorm_Dip  protectNorm_TET  \\\n",
       "SampleID                                                           \n",
       "106_V2                 0.052874             2.1              3.0   \n",
       "106_V6                 0.052874             2.1              3.0   \n",
       "106_V7                 0.052874             2.1              3.0   \n",
       "106_S_1                0.052874             2.1              3.0   \n",
       "106_A1                 0.052874             2.1              3.0   \n",
       "\n",
       "         protectNorm_PRP (Hib) protectNorm_PT  protectNorm_PRN  \\\n",
       "SampleID                                                         \n",
       "106_V2                     2.6         0.3125           0.3125   \n",
       "106_V6                     2.6         0.3125           0.3125   \n",
       "106_V7                     2.6         0.3125           0.3125   \n",
       "106_S_1                    2.6         0.3125           0.3125   \n",
       "106_A1                     2.6         0.3125           0.3125   \n",
       "\n",
       "         protectNorm_FHA  geommean_protectNorm  VR_group_v2  \n",
       "SampleID                                                     \n",
       "106_V2             1.375              1.140388          NVR  \n",
       "106_V6             1.375              1.140388          NVR  \n",
       "106_V7             1.375              1.140388          NVR  \n",
       "106_S_1            1.375              1.140388          NVR  \n",
       "106_A1             1.375              1.140388          NVR  \n",
       "\n",
       "[5 rows x 86 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta = pd.read_csv('../../data/metadata/stool/stool_metadata.csv', index_col='SampleID')\n",
    "meta = pd.concat([meta,\n",
    "                  pd.read_csv('../../data/metadata/stool/stool_abx_usage.csv', index_col='SampleID'),\n",
    "                  pd.read_csv('../../data/metadata/stool/stool_titers_yr1.csv', index_col='SampleID')],\n",
    "                 axis=1)\n",
    "meta = meta.query(\"`gt_2.5` == True\")\n",
    "meta['VR_group'] = meta['VR_group'].fillna('Not Measured')\n",
    "meta = meta.sort_values(['BabyN', 'age_at_collection'])\n",
    "meta = meta.loc[~pd.isna(meta['median_mmNorm'])]\n",
    "meta.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "79209a23-aaf8-4bdb-95d8-b7ba74e40ae1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(11048, 529)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>106_V2</th>\n",
       "      <th>106_V6</th>\n",
       "      <th>106_V7</th>\n",
       "      <th>106_S_1</th>\n",
       "      <th>106_A1</th>\n",
       "      <th>107_V2</th>\n",
       "      <th>107_V3</th>\n",
       "      <th>107_V6</th>\n",
       "      <th>107_S1</th>\n",
       "      <th>107_V7</th>\n",
       "      <th>...</th>\n",
       "      <th>264_S2F</th>\n",
       "      <th>264_V9</th>\n",
       "      <th>264_V10</th>\n",
       "      <th>264_V11</th>\n",
       "      <th>264_V12</th>\n",
       "      <th>265_V2</th>\n",
       "      <th>265_V5</th>\n",
       "      <th>265_V6</th>\n",
       "      <th>265_V8</th>\n",
       "      <th>265_S1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K00001</th>\n",
       "      <td>0.000107</td>\n",
       "      <td>0.000230</td>\n",
       "      <td>0.000334</td>\n",
       "      <td>0.000185</td>\n",
       "      <td>0.000906</td>\n",
       "      <td>4.820137e-04</td>\n",
       "      <td>0.000200</td>\n",
       "      <td>0.000760</td>\n",
       "      <td>0.000746</td>\n",
       "      <td>7.461465e-04</td>\n",
       "      <td>...</td>\n",
       "      <td>7.914440e-04</td>\n",
       "      <td>3.764422e-04</td>\n",
       "      <td>0.000187</td>\n",
       "      <td>1.659096e-04</td>\n",
       "      <td>0.000143</td>\n",
       "      <td>0.000019</td>\n",
       "      <td>0.000002</td>\n",
       "      <td>6.134967e-04</td>\n",
       "      <td>0.000217</td>\n",
       "      <td>3.267179e-04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00002</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000003</td>\n",
       "      <td>0.000002</td>\n",
       "      <td>0.000001</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000002</td>\n",
       "      <td>9.658854e-07</td>\n",
       "      <td>...</td>\n",
       "      <td>2.815525e-07</td>\n",
       "      <td>6.831982e-07</td>\n",
       "      <td>0.000016</td>\n",
       "      <td>1.020476e-05</td>\n",
       "      <td>0.000007</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.000002</td>\n",
       "      <td>2.978285e-07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00003</th>\n",
       "      <td>0.000066</td>\n",
       "      <td>0.000667</td>\n",
       "      <td>0.000209</td>\n",
       "      <td>0.000128</td>\n",
       "      <td>0.001472</td>\n",
       "      <td>9.958655e-05</td>\n",
       "      <td>0.000074</td>\n",
       "      <td>0.001010</td>\n",
       "      <td>0.001160</td>\n",
       "      <td>7.393853e-04</td>\n",
       "      <td>...</td>\n",
       "      <td>9.913462e-04</td>\n",
       "      <td>5.342610e-04</td>\n",
       "      <td>0.000521</td>\n",
       "      <td>6.297325e-04</td>\n",
       "      <td>0.000501</td>\n",
       "      <td>0.000054</td>\n",
       "      <td>0.000043</td>\n",
       "      <td>5.555358e-06</td>\n",
       "      <td>0.000397</td>\n",
       "      <td>6.165050e-04</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00004</th>\n",
       "      <td>0.000036</td>\n",
       "      <td>0.000002</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>7.404204e-07</td>\n",
       "      <td>0.000004</td>\n",
       "      <td>0.000004</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>7.727083e-06</td>\n",
       "      <td>...</td>\n",
       "      <td>4.645616e-06</td>\n",
       "      <td>3.415991e-07</td>\n",
       "      <td>0.000002</td>\n",
       "      <td>3.291858e-07</td>\n",
       "      <td>0.000006</td>\n",
       "      <td>0.000003</td>\n",
       "      <td>0.000049</td>\n",
       "      <td>3.703572e-07</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>2.680457e-06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00005</th>\n",
       "      <td>0.000020</td>\n",
       "      <td>0.000537</td>\n",
       "      <td>0.000064</td>\n",
       "      <td>0.000041</td>\n",
       "      <td>0.000021</td>\n",
       "      <td>1.096563e-03</td>\n",
       "      <td>0.000402</td>\n",
       "      <td>0.000136</td>\n",
       "      <td>0.000145</td>\n",
       "      <td>3.037710e-04</td>\n",
       "      <td>...</td>\n",
       "      <td>1.144511e-04</td>\n",
       "      <td>7.890940e-05</td>\n",
       "      <td>0.000201</td>\n",
       "      <td>2.011325e-04</td>\n",
       "      <td>0.000209</td>\n",
       "      <td>0.000390</td>\n",
       "      <td>0.000398</td>\n",
       "      <td>9.525587e-04</td>\n",
       "      <td>0.000120</td>\n",
       "      <td>3.154004e-04</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 529 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          106_V2    106_V6    106_V7   106_S_1    106_A1        107_V2  \\\n",
       "K00001  0.000107  0.000230  0.000334  0.000185  0.000906  4.820137e-04   \n",
       "K00002  0.000000  0.000000  0.000003  0.000002  0.000001  0.000000e+00   \n",
       "K00003  0.000066  0.000667  0.000209  0.000128  0.001472  9.958655e-05   \n",
       "K00004  0.000036  0.000002  0.000000  0.000000  0.000000  7.404204e-07   \n",
       "K00005  0.000020  0.000537  0.000064  0.000041  0.000021  1.096563e-03   \n",
       "\n",
       "          107_V3    107_V6    107_S1        107_V7  ...       264_S2F  \\\n",
       "K00001  0.000200  0.000760  0.000746  7.461465e-04  ...  7.914440e-04   \n",
       "K00002  0.000000  0.000000  0.000002  9.658854e-07  ...  2.815525e-07   \n",
       "K00003  0.000074  0.001010  0.001160  7.393853e-04  ...  9.913462e-04   \n",
       "K00004  0.000004  0.000004  0.000000  7.727083e-06  ...  4.645616e-06   \n",
       "K00005  0.000402  0.000136  0.000145  3.037710e-04  ...  1.144511e-04   \n",
       "\n",
       "              264_V9   264_V10       264_V11   264_V12    265_V2    265_V5  \\\n",
       "K00001  3.764422e-04  0.000187  1.659096e-04  0.000143  0.000019  0.000002   \n",
       "K00002  6.831982e-07  0.000016  1.020476e-05  0.000007  0.000000  0.000000   \n",
       "K00003  5.342610e-04  0.000521  6.297325e-04  0.000501  0.000054  0.000043   \n",
       "K00004  3.415991e-07  0.000002  3.291858e-07  0.000006  0.000003  0.000049   \n",
       "K00005  7.890940e-05  0.000201  2.011325e-04  0.000209  0.000390  0.000398   \n",
       "\n",
       "              265_V6    265_V8        265_S1  \n",
       "K00001  6.134967e-04  0.000217  3.267179e-04  \n",
       "K00002  0.000000e+00  0.000002  2.978285e-07  \n",
       "K00003  5.555358e-06  0.000397  6.165050e-04  \n",
       "K00004  3.703572e-07  0.000000  2.680457e-06  \n",
       "K00005  9.525587e-04  0.000120  3.154004e-04  \n",
       "\n",
       "[5 rows x 529 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ko_abunds = pd.read_csv('../../data/stool/ko_abundance_table.rel.tsv', sep='\\t', index_col=0)\n",
    "ko_abunds.index = [i.replace(\"'\", \"_\").replace('#', '_') for i in ko_abunds.index]\n",
    "ko_abunds.columns = [i.split('.txt')[0] for i in ko_abunds.columns]\n",
    "ko_abunds = ko_abunds[meta.index]\n",
    "print(ko_abunds.shape)\n",
    "display(ko_abunds.head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "2ec211de-fa3f-472d-a373-f754c745562c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(529, 86)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/2340599432.py:2: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  meta_matched = meta.loc[in_both]\n"
     ]
    }
   ],
   "source": [
    "in_both = set(meta.index) & set(ko_abunds.columns)\n",
    "meta_matched = meta.loc[in_both]\n",
    "print(meta_matched.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "e7300a20-03ca-4941-9ed6-7e1b851f97e3",
   "metadata": {},
   "outputs": [],
   "source": [
    "meta_v5 = meta_matched.query(\"VisitCode == 'V5'\")\n",
    "meta_v6 = meta_matched.query(\"VisitCode == 'V6'\")\n",
    "meta_v7 = meta_matched.query(\"VisitCode == 'V7'\")\n",
    "meta_v9 = meta_matched.query(\"VisitCode == 'V9'\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "f6a413ed-371e-4d1e-8ade-071dc4e10cf8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SubmissionType</th>\n",
       "      <th>SampleNumber</th>\n",
       "      <th>SampleIDValidation</th>\n",
       "      <th>DiversigenCheckInSampleName</th>\n",
       "      <th>BoxLocation</th>\n",
       "      <th>SampleType</th>\n",
       "      <th>SampleSource</th>\n",
       "      <th>SequencingType</th>\n",
       "      <th>BabyN</th>\n",
       "      <th>BabyN_checked</th>\n",
       "      <th>...</th>\n",
       "      <th>median_mmNorm_PCV</th>\n",
       "      <th>median_mmNorm_DTAPHib</th>\n",
       "      <th>protectNorm_Dip</th>\n",
       "      <th>protectNorm_TET</th>\n",
       "      <th>protectNorm_PRP (Hib)</th>\n",
       "      <th>protectNorm_PT</th>\n",
       "      <th>protectNorm_PRN</th>\n",
       "      <th>protectNorm_FHA</th>\n",
       "      <th>geommean_protectNorm</th>\n",
       "      <th>VR_group_v2</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SampleID</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>119_V8</th>\n",
       "      <td>Primary in Tube</td>\n",
       "      <td>420</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Box9</td>\n",
       "      <td>Stool</td>\n",
       "      <td>Human Infant</td>\n",
       "      <td>MetaG</td>\n",
       "      <td>119</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>0.100649</td>\n",
       "      <td>0.060490</td>\n",
       "      <td>1.4</td>\n",
       "      <td>2.6</td>\n",
       "      <td>4.466667</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>0.7500</td>\n",
       "      <td>0.7500</td>\n",
       "      <td>1.191268</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>234_V11</th>\n",
       "      <td>Primary in Tube</td>\n",
       "      <td>672</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Box21</td>\n",
       "      <td>Stool</td>\n",
       "      <td>Human Infant</td>\n",
       "      <td>MetaG</td>\n",
       "      <td>234</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>0.041118</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.866667</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>0.1875</td>\n",
       "      <td>0.397877</td>\n",
       "      <td>LVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>252_V8</th>\n",
       "      <td>Primary in Tube</td>\n",
       "      <td>484</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Box12</td>\n",
       "      <td>Stool</td>\n",
       "      <td>Human Infant</td>\n",
       "      <td>MetaG</td>\n",
       "      <td>252</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>0.481453</td>\n",
       "      <td>0.161003</td>\n",
       "      <td>8.3</td>\n",
       "      <td>7.9</td>\n",
       "      <td>7.800000</td>\n",
       "      <td>1.3750</td>\n",
       "      <td>0.8750</td>\n",
       "      <td>0.1875</td>\n",
       "      <td>2.206405</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>238_S1</th>\n",
       "      <td>Primary in Tube</td>\n",
       "      <td>549</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Box15</td>\n",
       "      <td>Stool</td>\n",
       "      <td>Human Infant</td>\n",
       "      <td>MetaG</td>\n",
       "      <td>238</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>0.091191</td>\n",
       "      <td>0.032536</td>\n",
       "      <td>3.5</td>\n",
       "      <td>3.5</td>\n",
       "      <td>4.800000</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>0.1875</td>\n",
       "      <td>1.012387</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>201_S1</th>\n",
       "      <td>Primary in Tube</td>\n",
       "      <td>177</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Box 11, F4</td>\n",
       "      <td>Stool</td>\n",
       "      <td>Human Infant</td>\n",
       "      <td>MetaG</td>\n",
       "      <td>201</td>\n",
       "      <td>NaN</td>\n",
       "      <td>...</td>\n",
       "      <td>0.392850</td>\n",
       "      <td>0.055923</td>\n",
       "      <td>3.5</td>\n",
       "      <td>3.7</td>\n",
       "      <td>4.600000</td>\n",
       "      <td>0.3125</td>\n",
       "      <td>0.7500</td>\n",
       "      <td>0.1875</td>\n",
       "      <td>1.173969</td>\n",
       "      <td>NVR</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 86 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           SubmissionType  SampleNumber  SampleIDValidation  \\\n",
       "SampleID                                                      \n",
       "119_V8    Primary in Tube           420                 NaN   \n",
       "234_V11   Primary in Tube           672                 NaN   \n",
       "252_V8    Primary in Tube           484                 NaN   \n",
       "238_S1    Primary in Tube           549                 NaN   \n",
       "201_S1    Primary in Tube           177                 NaN   \n",
       "\n",
       "         DiversigenCheckInSampleName BoxLocation SampleType  SampleSource  \\\n",
       "SampleID                                                                    \n",
       "119_V8                           NaN        Box9      Stool  Human Infant   \n",
       "234_V11                          NaN       Box21      Stool  Human Infant   \n",
       "252_V8                           NaN       Box12      Stool  Human Infant   \n",
       "238_S1                           NaN       Box15      Stool  Human Infant   \n",
       "201_S1                           NaN  Box 11, F4      Stool  Human Infant   \n",
       "\n",
       "         SequencingType  BabyN  BabyN_checked  ... median_mmNorm_PCV  \\\n",
       "SampleID                                       ...                     \n",
       "119_V8            MetaG    119            NaN  ...          0.100649   \n",
       "234_V11           MetaG    234            NaN  ...          0.041118   \n",
       "252_V8            MetaG    252            NaN  ...          0.481453   \n",
       "238_S1            MetaG    238            NaN  ...          0.091191   \n",
       "201_S1            MetaG    201            NaN  ...          0.392850   \n",
       "\n",
       "          median_mmNorm_DTAPHib protectNorm_Dip  protectNorm_TET  \\\n",
       "SampleID                                                           \n",
       "119_V8                 0.060490             1.4              2.6   \n",
       "234_V11                0.000000             0.5              0.5   \n",
       "252_V8                 0.161003             8.3              7.9   \n",
       "238_S1                 0.032536             3.5              3.5   \n",
       "201_S1                 0.055923             3.5              3.7   \n",
       "\n",
       "         protectNorm_PRP (Hib) protectNorm_PT  protectNorm_PRN  \\\n",
       "SampleID                                                         \n",
       "119_V8                4.466667         0.3125           0.7500   \n",
       "234_V11               0.866667         0.3125           0.3125   \n",
       "252_V8                7.800000         1.3750           0.8750   \n",
       "238_S1                4.800000         0.3125           0.3125   \n",
       "201_S1                4.600000         0.3125           0.7500   \n",
       "\n",
       "         protectNorm_FHA  geommean_protectNorm  VR_group_v2  \n",
       "SampleID                                                     \n",
       "119_V8            0.7500              1.191268          NVR  \n",
       "234_V11           0.1875              0.397877          LVR  \n",
       "252_V8            0.1875              2.206405          NVR  \n",
       "238_S1            0.1875              1.012387          NVR  \n",
       "201_S1            0.1875              1.173969          NVR  \n",
       "\n",
       "[5 rows x 86 columns]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta_PCV = meta_matched.loc[~pd.isna(meta_matched['median_mmNorm_PCV'])]\n",
    "meta_PCV.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "033d15a4-e7ca-4335-b6fc-116de0d44bf2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2208\n"
     ]
    }
   ],
   "source": [
    "# The KEGG module file is not in the git repo, future users will need to find a copy of this file somewhere\n",
    "modules = {line.strip().split()[0]: set(line.strip().split()[1:]) for line in open('../../../../KEGG.20210320/module_kos.tsv')}\n",
    "modules = {key: value for key, value in modules.items() if len(value) >= 5}\n",
    "all_module_kos = {ko for module, kos in modules.items() for ko in kos}\n",
    "print(len(all_module_kos))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5d2b8c1a-899e-4d80-b1fb-d2c541b9f796",
   "metadata": {},
   "source": [
    "## KO correlations\n",
    "\n",
    "### 2 months"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "ac47252b-b54b-4ac0-b35e-de65db353143",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(4416, 43)\n"
     ]
    }
   ],
   "source": [
    "ko_abunds_v5 = ko_abunds[meta_v5.index]\n",
    "ko_abunds_v5 = ko_abunds_v5.loc[(ko_abunds_v5 > 0).sum(axis=1) > ko_abunds_v5.shape[1]*.2]\n",
    "ko_abunds_v5 = ko_abunds_v5.loc[ko_abunds_v5.var(axis=1) > 1e-10] # variance filter\n",
    "print(ko_abunds_v5.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "29d671ff-a0ed-48f1-a0fe-60efdec4cb09",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K21394</th>\n",
       "      <td>-0.506484</td>\n",
       "      <td>0.000529</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K05784</th>\n",
       "      <td>0.504534</td>\n",
       "      <td>0.000561</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>0.498037</td>\n",
       "      <td>0.000678</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03327</th>\n",
       "      <td>0.488221</td>\n",
       "      <td>0.000896</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00343</th>\n",
       "      <td>0.478707</td>\n",
       "      <td>0.001165</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K21394 -0.506484  0.000529  0.517858\n",
       "K05784  0.504534  0.000561  0.517858\n",
       "K02517  0.498037  0.000678  0.517858\n",
       "K03327  0.488221  0.000896  0.517858\n",
       "K00343  0.478707  0.001165  0.517858"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v5_correlations = ko_abunds_v5.transpose().apply(spearmanr, b=meta_v5['median_mmNorm']).transpose()\n",
    "v5_correlations.columns = ['rho', 'p_value']\n",
    "v5_correlations['p_adj'] = p_adjust(v5_correlations['p_value'])\n",
    "v5_correlations = v5_correlations.sort_values('p_value')\n",
    "v5_correlations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "9200aaa3-4f03-4d6a-81da-8a781289659a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "378\n"
     ]
    }
   ],
   "source": [
    "print(len(v5_correlations.query('p_value < .05')))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "07dcdd8a-a37e-4c4f-94fe-bb58c26e2e53",
   "metadata": {},
   "source": [
    "When we do these correlations we get no significant after FDR correction. There is strong significance in the raw p-values though with 278 unadjusted p-values < .05. To take advantage of this result we will run a module enrichment test to look for enrichment of KEGG modules."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "1bf5e139-b5fd-4012-a608-14dbc77eb5cd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>module_size</th>\n",
       "      <th>in_in</th>\n",
       "      <th>in_out</th>\n",
       "      <th>out_in</th>\n",
       "      <th>out_out</th>\n",
       "      <th>odds_ratio</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>module</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>M00060</th>\n",
       "      <td>10</td>\n",
       "      <td>7</td>\n",
       "      <td>371</td>\n",
       "      <td>3</td>\n",
       "      <td>2134</td>\n",
       "      <td>13.421384</td>\n",
       "      <td>0.000131</td>\n",
       "      <td>0.023278</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00144</th>\n",
       "      <td>16</td>\n",
       "      <td>9</td>\n",
       "      <td>369</td>\n",
       "      <td>7</td>\n",
       "      <td>2130</td>\n",
       "      <td>7.421603</td>\n",
       "      <td>0.000153</td>\n",
       "      <td>0.023278</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00866</th>\n",
       "      <td>11</td>\n",
       "      <td>7</td>\n",
       "      <td>371</td>\n",
       "      <td>4</td>\n",
       "      <td>2133</td>\n",
       "      <td>10.061321</td>\n",
       "      <td>0.000314</td>\n",
       "      <td>0.031791</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00913</th>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>375</td>\n",
       "      <td>2</td>\n",
       "      <td>2135</td>\n",
       "      <td>8.540000</td>\n",
       "      <td>0.026621</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00116</th>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "      <td>374</td>\n",
       "      <td>5</td>\n",
       "      <td>2132</td>\n",
       "      <td>4.560428</td>\n",
       "      <td>0.033886</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        module_size  in_in  in_out  out_in  out_out  odds_ratio   p_value  \\\n",
       "module                                                                      \n",
       "M00060           10      7     371       3     2134   13.421384  0.000131   \n",
       "M00144           16      9     369       7     2130    7.421603  0.000153   \n",
       "M00866           11      7     371       4     2133   10.061321  0.000314   \n",
       "M00913            5      3     375       2     2135    8.540000  0.026621   \n",
       "M00116            9      4     374       5     2132    4.560428  0.033886   \n",
       "\n",
       "           p_adj  \n",
       "module            \n",
       "M00060  0.023278  \n",
       "M00144  0.023278  \n",
       "M00866  0.031791  \n",
       "M00913  1.000000  \n",
       "M00116  1.000000  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v5_sig_kos = set(v5_correlations.query('p_value < .05').index)\n",
    "v5_enrichment = measure_enrichment(v5_sig_kos, modules, all_module_kos)\n",
    "v5_enrichment.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "06689b80-c8c6-46ae-aa8c-18aac4669b72",
   "metadata": {},
   "outputs": [],
   "source": [
    "v5_enrichment.to_csv('../../data/stool/ko_correlation_enrichment_V5.tsv', sep='\\t')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9be9bc4d-ecc9-4e2a-846a-f2243caaf879",
   "metadata": {},
   "source": [
    "When we do this we find 3 modules which are significantly enriched. M00060 and M00866 are the same but with 1 KO added for 866."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c80b6330-880d-4588-bb78-e0141ad0e8a4",
   "metadata": {},
   "source": [
    "#### Dig into modules"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "9358f7ca-cf11-42aa-9894-67f353757780",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/3075512320.py:1: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  v5_correlations.loc[set(v5_correlations.index) & modules['M00060']].sort_values('p_value')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>0.498037</td>\n",
       "      <td>0.000678</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02527</th>\n",
       "      <td>0.418303</td>\n",
       "      <td>0.005248</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00912</th>\n",
       "      <td>0.397916</td>\n",
       "      <td>0.008229</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03269</th>\n",
       "      <td>0.372244</td>\n",
       "      <td>0.013968</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00677</th>\n",
       "      <td>0.368771</td>\n",
       "      <td>0.014958</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00748</th>\n",
       "      <td>0.360163</td>\n",
       "      <td>0.017674</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02536</th>\n",
       "      <td>0.331773</td>\n",
       "      <td>0.029747</td>\n",
       "      <td>0.526796</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09949</th>\n",
       "      <td>0.186440</td>\n",
       "      <td>0.231278</td>\n",
       "      <td>0.708491</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02560</th>\n",
       "      <td>-0.119450</td>\n",
       "      <td>0.445496</td>\n",
       "      <td>0.809950</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02535</th>\n",
       "      <td>-0.055270</td>\n",
       "      <td>0.724822</td>\n",
       "      <td>0.872395</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K02517  0.498037  0.000678  0.517858\n",
       "K02527  0.418303  0.005248  0.517858\n",
       "K00912  0.397916  0.008229  0.517858\n",
       "K03269  0.372244  0.013968  0.517858\n",
       "K00677  0.368771  0.014958  0.517858\n",
       "K00748  0.360163  0.017674  0.517858\n",
       "K02536  0.331773  0.029747  0.526796\n",
       "K09949  0.186440  0.231278  0.708491\n",
       "K02560 -0.119450  0.445496  0.809950\n",
       "K02535 -0.055270  0.724822  0.872395"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v5_correlations.loc[set(v5_correlations.index) & modules['M00060']].sort_values('p_value')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "0db6e510-7c04-4555-b3b5-7b6f633b3b5b",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/136881632.py:1: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  v5_correlations.loc[set(v5_correlations.index) & modules['M00144']].sort_values('p_value')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K00343</th>\n",
       "      <td>0.478707</td>\n",
       "      <td>0.001165</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00338</th>\n",
       "      <td>0.420266</td>\n",
       "      <td>0.005018</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00341</th>\n",
       "      <td>0.406222</td>\n",
       "      <td>0.006873</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00339</th>\n",
       "      <td>0.392782</td>\n",
       "      <td>0.009177</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K13378</th>\n",
       "      <td>0.374962</td>\n",
       "      <td>0.013232</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00342</th>\n",
       "      <td>0.373603</td>\n",
       "      <td>0.013595</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00337</th>\n",
       "      <td>0.354878</td>\n",
       "      <td>0.019539</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00340</th>\n",
       "      <td>0.347780</td>\n",
       "      <td>0.022301</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00331</th>\n",
       "      <td>0.326941</td>\n",
       "      <td>0.032362</td>\n",
       "      <td>0.526796</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00330</th>\n",
       "      <td>0.279070</td>\n",
       "      <td>0.069947</td>\n",
       "      <td>0.592711</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00335</th>\n",
       "      <td>0.101027</td>\n",
       "      <td>0.519181</td>\n",
       "      <td>0.818408</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00334</th>\n",
       "      <td>0.061160</td>\n",
       "      <td>0.696833</td>\n",
       "      <td>0.859317</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00336</th>\n",
       "      <td>-0.003775</td>\n",
       "      <td>0.980831</td>\n",
       "      <td>0.991704</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K00343  0.478707  0.001165  0.517858\n",
       "K00338  0.420266  0.005018  0.517858\n",
       "K00341  0.406222  0.006873  0.517858\n",
       "K00339  0.392782  0.009177  0.517858\n",
       "K13378  0.374962  0.013232  0.517858\n",
       "K00342  0.373603  0.013595  0.517858\n",
       "K00337  0.354878  0.019539  0.517858\n",
       "K00340  0.347780  0.022301  0.517858\n",
       "K00331  0.326941  0.032362  0.526796\n",
       "K00330  0.279070  0.069947  0.592711\n",
       "K00335  0.101027  0.519181  0.818408\n",
       "K00334  0.061160  0.696833  0.859317\n",
       "K00336 -0.003775  0.980831  0.991704"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v5_correlations.loc[set(v5_correlations.index) & modules['M00144']].sort_values('p_value')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "04c4780f-3ad3-4448-8088-f2eec613358a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "K00334\tK00332\tK00339\tK13378\tK00341\tK00343\tK00337\tK00331\tK00338\tK00342\tK00330\tK13380\tK00335\tK00333\tK00340\tK00336\n"
     ]
    }
   ],
   "source": [
    "print('\\t'.join(modules['M00144']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "3ace66bf-dc1f-46e9-a4ad-88b336bc14f6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<seaborn.axisgrid.FacetGrid at 0x185219ac0>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABcgAAANsCAYAAABvaku5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAABcSAAAXEgFnn9JSAAEAAElEQVR4nOzdeXhTVcIG8Ddbm7SFAi2l7G2BFChFdmhBAXEBPlDBfUVwHXHf13HEXQe3GVHUAQXcUHBBEXWgKAiKIIoUgdJS1kJZuyZNcnO/PzoJaZvl3uRmf3/PwzNjcnO35rw599xzz1GJoiiCiIiIiIiIiIiIiCjOqMO9A0RERERERERERERE4cAGciIiIiIiIiIiIiKKS2wgJyIiIiIiIiIiIqK4xAZyIiIiIiIiIiIiIopLbCAnIiIiIiIiIiIiorjEBnIiIiIiIiIiIiIiiktsICciIiIiIiIiIiKiuMQGciIiIiIiIiIiIiKKS2wgJyIiIiIiIiIiIqK4xAZyIiIiIiIiIiIiIopLbCAnIiIiIiIiIiIiorjEBnIiIiIiIiIiIiIiiktsICciIiIiIiIiIiKiuMQGciIiIiIiIiIiIiKKS2wgJ6f9+/cjNzcXubm5+OWXX7wu+/nnn6NPnz7Izc3FZZddhtraWrfLHT16FG+88QauvPJKjBw5Ev369cOQIUNw0UUX4eWXX8a+ffuCcSh+++WXX5znYP/+/V6XfeONN5zL3nrrrbBarU3e37lzJ+666y4UFhaiX79+OPPMM/GPf/wDhw8f9rreTZs24eabb8bw4cORn5+Pc845By+++CKqq6s9fsZiseCdd97BlClTcNppp2HQoEGYOnUq/vOf/6ChoUH6CQDw9NNPIzc3Fw8++KDHZSorK/HUU0/h7LPPRr9+/TBixAjMmDED33zzjaxtUXxi1sRf1tTW1uLll1/GxIkTkZ+fj2HDhuGKK67A4sWLYbfbPX7OZDJhzpw5mDx5Mk477TQMGDAAU6ZMwdtvvw2LxeL1+IiYNfGXNe5Iqdc0t2bNGuTm5uLll1+WtS2KT8ya+Msaf+s1x48fx/PPP49zzz0X+fn5OOOMM/C3v/0NP//8s9djIwKYNYCyWeNKFEVcdtllyM3Nhc1m87ic3W7H4sWLcdlll2HgwIEYMGAAJk+ejNdeew01NTUePyc3ax588EHnvkv51xyvofyjDfcOUPT5/PPP8dBDD8Fut2PYsGF48803kZyc3GK5efPm4V//+hfq6+sBAJ06dUJubi6OHDmCrVu34s8//8Q777yDmTNn4m9/+xtUKlWoD8Vvb7zxBl555RUAwMSJE/Hiiy9Cqz1VnDZu3IgZM2agoaEBbdu2hdFoxO7du/Hhhx9i+fLleO+999CnT58W612+fDnuuece2O12dOjQAZ07d0ZJSQneeecdLF++HB988AE6duzY5DNVVVWYPn06iouLoVKp0LVrV+h0OuzYsQPFxcVYunQpFi5ciHbt2vk8rg0bNmDhwoVel9m2bRumT5+OkydPQqfTITs7G3V1dfjpp5/w008/4bvvvsPs2bOhVvP+GwWGWRMbWXPgwAFcc8012L9/PzQaDbp37w5BELB582Zs2rQJX375Jd555x3o9fomn6uursbVV1+N7du3Q6VSoVu3bgCAv/76C9u2bcO3336Ld999FykpKUqcaopjzJrYyBp3pNRrmtu3bx8efvhhWZ8hkoJZExtZ42+9Zvv27bj++utx5MgRqFQq9OzZE6IoYtWqVVi1ahWuvfZaPPjgg1H196TIxKzxnTXNzZ49G5s3b/a6TovFgpkzZ+LHH38E0Hi+UlJSUF5ejtdffx2ffvop3nvvPWRnZzf5nD9Zk5WVhUGDBnndnz///BNWq9V5jeTAa6gAiET/s2/fPtFoNIpGo1H8+eef3S7z+eefi7179xaNRqN47bXXivX19W6Xe/TRR53reuihh8Ty8vIm7x84cEB88sknxdzcXNFoNIq33nqrKAiC4sck188//+zc73379rld5o033nAuc99994k2m63J+ydOnBCHDh0qGo1G8cUXXxStVqsoiqJYU1Mj3nbbbaLRaBTHjRsnNjQ0NPlcaWmpmJeXJxqNRnHhwoWi3W4XRVEUjxw5Il5xxRWi0WgUL7/88hb7c++994pGo1E844wzxC1btjhfLy8vFydNmiQajUbxpptu8nnstbW14plnnuk8tgceeKDFMg0NDeK4ceNEo9EoXn311eLhw4ed761bt04cOHCgaDQaxf/85z8+t0fxi1kTX1lz+eWXi0ajUZw8ebK4e/du5+tbt24VTz/9dNFoNIqzZs1q8bmHHnpINBqN4qhRo5psb9OmTeKIESNEo9EoPvLII27PHZEoMmtEMb6ypjkp9Zrmtm/fLo4ZM8b5mZdeesnnZ4iYNfGVNf7Ua+rq6pzZcs4554g7duxo8rkzzjhDNBqN4ty5c92eOyJRZNaIojJZ48pms4nPPfecc3mj0ejMnuZefvll0Wg0ioMGDRLXrl3rfL2yslK8+uqrRaPRKE6aNMmZQQ5K1WtcLV26VDQajeKAAQPEXbt2NXmP11D+YwM5OfkK3C+++MIZttdff71oNpvdrmfRokWi0WgUc3Nzxc8//9zrNpcvXy727ds3YioEvgL3zTffdL7/8MMPu/2ReO2110Sj0ShecsklLd5raGhwXqwtXry4yXsPPPCAaDQaxbvuuqvF544fPy4OGjRINBqN4k8//eR8/dChQ86/yZo1a1p87vfff3fub0VFhddjd/xInnbaaR4vJL/66itnEB8/frzF+3PnzhWNRqN49tlne90WxTdmTfxkzebNm52vN6+8iaIofv3116LRaBT79+/fpDLa0NAg9u/fXzQajeKXX37Z4nOffvqp83PNL5SJHJg18ZM17kip1zjYbDZx0aJFztxhAznJwayJn6zxt17z3nvvOV/fu3dvi8/9+OOPzrxy7YBE5IpZo0zWOOzevVu86qqrmvzue2ogb2hocGbJRx991OL9yspK582EjRs3Ol9Xsl7jUFZWJg4YMEA0Go3iJ5980mI/eQ3lP46BQJJ8+eWXePDBB2G323HmmWfi9ddfR2JiYovlamtrnY+yTJs2Deeff77X9U6YMAHXXHMNAOC1117D3r17Fd93pbz11lt46aWXAACXX345nnrqKbfDiHz22WcAgIsuuqjFewkJCc7Xv/rqK+frDQ0NWL58ucfPtW3bFhMmTGjxObPZjEsvvRRnnHEGCgsLW3zOdTyqgwcPejy2H3/8EYsXL0a/fv1w1llneVwuNTUVF1xwAS677DK0bdvW4/a8bYvIG2ZNbGWNWq3GxRdfjPPPPx89evTw+Dmz2Yxjx445Xz958iTMZjMAoHfv3i0+l5+f7/zc8ePHW7xP5AuzJraypjmp9Rqg8dHn8847D7NmzYLZbMaVV17p87FmIqmYNbGVNf7Wa3744QcAwDnnnIOuXbu2+Nzpp5+OnJwcmEwmrFixosX7RL4wa6RnDQC8//77mDRpEjZs2ICOHTvi3nvv9bru2tpaTJ06FYWFhTj33HNbvN++fXvnECmumaFUvcbVo48+ivr6eowcObJF7vEaKjAcg5x8WrZsGR588EEIgoBzzz0Xs2fPhk6nc7vsF198gerqami1Wlx33XWS1j9z5kwsWrQIFosFH330Ee6//36fn1m6dCkeeughycdw66234rbbbpO8fHNvvfUWZs+eDaDxh8TT2JSVlZU4cOAAAHi8uHK8/ttvv8FqtUKn02Hbtm1oaGiASqXy+rlPPvkEGzZscL7WvXt3/OMf//C431u3bgXQWJlzVxkDGseoevTRR5GQkIDnnnsO//nPfzyub9SoURg1apTP7XXv3t3jMkSeMGtiL2v69++P/v37e/zcn3/+CQBISUlBenq68/W0tDQkJiaioaEB27ZtQ69evZp8bseOHQCAxMREpKWleVw/kTvMmtjLGldy6jUAUFNTg127dqFHjx545JFHMHLkSFx99dVeP0MkBbMm9rLG33qNo+ErLy/P42ezs7NRVlaGP/74w+MyRO4wa6RnjYOjrF599dW48847UVxc7HX5du3a4ZFHHvH4/v79+3HixAkATdtClKjXuFq+fDk2btwInU6HRx99tMX7vIYKDBvIyauvvvoKDzzwAARBwKRJk/DCCy9Ao9F4XH7dunUAGu+EZWRkSNpGSkoKCgsLsXr1avzwww+SAjctLU1W757mk7LI8fbbbzvD9vrrr8d9993ncVnHHVXH5AvudO7cGUDjJA8VFRXo1q0b9uzZA6DxzmPzCV2af+7AgQPOSqEnoijihx9+wBNPPAGgsUdF+/bt3S47a9YsHD58GPfcc0+LAJXKbDbj008/xdy5cwEAN910k1/rofjFrIn9rHFls9nwzTff4JlnngEA3HDDDU3+3hqNBpdeeikWLFiA2bNno2fPns6Lym3btuHFF18EAFx11VVe94+oOWZN7GeN3HpNcnIyZs+ejQkTJnj9LhDJwayJ/axx5ate45jc0Nu2bTabcz+JpGLWyMsah3POOQczZ86U1Cjty8aNGzFr1izY7XaMHDnS6000B3+yxmKxOK+BLrnkEuTk5LRYhtdQgWEDOXn09ddf4/7774cgCEhISMADDzzg88Lhr7/+AuD+cQ5v+vTpg9WrV2P37t2wWCxISEjwuvzo0aMxevRoWdvwxzvvvIN//vOfAID09HSfdzUdj9KlpKR4PIY2bdo4//+JEyfQrVs35+MtzWdJd/c5u92OqqqqJr0SHByPBu/fvx8n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fIkfbCAnCiGDwYA6sxW7D1ZLWr70QBXqTNYg7xURUeyoMzFjiSIZyygRKY25QkTBwnyJH2wgJwohjUaDmnp5gVnLgCUikqyWGUsU0VhGiUhpzBUiChbmS/xgAzlRCAmCgFZJOlmfSTHIW56IKJ6lMGOJIhrLKBEpjblCRMHCfIkfbCAnCiGTyYRkvQ45nVMlLd+jcyqS9QxYIiKpkg3MWKJIxjJKREpjrhBRsDBf4gcbyIlCTKNR4cKxPSUte+HYXtBpWUyJiKTSadTMWKIIxjJKREpjrhBRsDBf4gf/ckQhplYBw/IyMaEwy+tyEwuzMDSvAzQaFlMiIqk0GjUzliiCsYwSkdKYK0QULMyX+KEN9w4QxSN9ghYzJuchPycdnxaVoOxAlfO9nM6puGhsLwzN6wB9AosoEZFczFiiyMYySkRKY64QUbAwX+ID/3pEYaJP0KKwf0cMzeuAOpMVtSYrUgw6JOt10GnVvPNIRBQAZixRZGMZJSKlMVeIKFiYL7GPDeREYaTRNAapPkGLtFRDuHeHiCimMGOJIhvLKBEpjblCRMHCfIltvMVBRERERERERERERHGJDeREREREREREREREFJfYQE5EREREREREREREcYkN5EREREREREREREQUl9hATkRERERERERERERxiQ3kRERERERERERERBSX2EBORERERERERERERHGJDeREREREREREREREFJfYQE5EREREREREREREcUnRBvLdu3dDFEUlV0lEREREREREREREFBSKNpDffvvtGDduHE6cOKHkaomIiIiIiIiIiIiIFKdoA/m+ffuQmJiItm3bKrlaIiIiIiIiIiIiIiLFKdpAnpycDLvdruQqiYiIiIiIiIiIiIiCQtEG8iuuuAJ79uzBvHnzlFwtEREREREREREREZHitEquLD8/H4MGDcKLL76I999/HwMHDkT79u2h1+s9fuaOO+5QcheIiIiIiIiIiIiIiCRRtIH8xhtvhEqlgiiKOHDgAA4ePOhxWVEUoVKp2EBORERERERERERERGGhaAP50KFDlVwdEREREREREREREVHQKNpAvnDhQiVXR0REREREREREREQUNIpO0klEREREREREREREFC0U7UHuqqqqCuvXr0dZWRlqamrwwAMPoKGhAX/88QeGDRsWrM0SEREREREREREREUmieAO5KIr4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YiVW6HQ6WK1WqNVqJCYmhnt3iGKKXq8P9y5EDGYNUfAwa05h1hAFD7PmFGYNUfAwa05h1hAFTyRlDXuQExEREREREREREVFc4oj7RERERERERERERBSX2EBORERERERERERERHGJDeREREREREREREREFJfYQE5EREREREREREREcYkN5EREREREREREREQUl9hATkRERERERERERERxiQ3kRERERERERERERBSX2EBORERERERERERERHGJDeREREREREREREREFJfYQE5EREREREREREREcYkN5EREREREREREREQUl9hATkRERERERERERERxiQ3kRERERERERERERBSX2EBORERERERERERERHGJDeREREREREREREREFJfYQE5EREREREREREREcYkN5EREREREREREREQUl7Th3oFosXv3brz++uvYtGkTjh07hszMTEyYMAE33XQTkpKSZK3r8OHDmDNnDtatW4dDhw4hPT0dZ555JmbOnIl27dq5/cyff/6JOXPmYOvWraiurkbXrl1xwQUXYNq0adDpdG4/s3z5cixYsABlZWUQBAG9e/fGtGnTcM4557hd3mw2Y8GCBVi2bBn27dsHg8GAoUOH4pZbbkHv3r1lHWOkioe/42WXXYbNmzd73O/7778f1113naxjJeXFw3fRn0zxdixVVVU8Z26WHzRoEARB8Hisp59+OkpLS2P2nDU3Y8YMbN682WsO+nMssYg5FHjdJh7OYbDrFdF4Dl3NmTMHr776Kj799FPk5+e7XSYe6tjeROPfONKyxpN4OLfNSfmdV0o8nN+dO3finXfewYYNG3D06FHo9Xr06dMHl156KSZNmiTrGMMtHv5ekfx7Eg/nP5LbWqLx/LuKhPqUShRFMeC1xLgtW7Zg2rRpqK+vR//+/dGxY0f89ttvOHLkCHJzc/HBBx8gJSVF0rr27duHyy+/HEeOHIHRaER2dja2bduGffv2ITMzEx9//DEyMzObfKaoqAi33nor7HY7hgwZgtatW+PXX39FVVUVRo4ciblz57b4wr344ot45513kJSUhOHDh8NisWDDhg2wWq249dZbcdtttzVZvqGhAddffz02bNiA9u3bY9CgQaioqMCWLVug0+kwd+5cjBw5MrATGWbx8HcUBAGDBw+GIAg499xz3e775MmTMXr0aBlnjpQWD99F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JyIiIiIiIiIiIiJVYgc5EREREREREREREakSO8iJiIiIiIiIiIiISJXYQU5EREREREREREREqsQOciIiIiIiIiIiIiJSJXaQExEREREREREREZEqsYOciIiIiIiIiIiIiFSJHeREREREREREREREpErsICciIiIiIiIiIiIiVWIHORERERERERERERGpEjvIiYiIiIiIiIiIiEiV2EFORERERERERERERKrEDnIiIiIiIiIiIiIiUiV2kBMRERERERERERGRKrGDnIiIiIiIiIiIiIhUiR3kRERERERERERERKRK7CAnIiIiIiIiIiIiIlViBzkRERERERERERERqRI7yImIiIiIiIiIiIhIldhBTkRERERERERERESqxA5yIiIiIiIiIiIiIlIldpATERERERERERERkSqxg5yIiIiIiIiIiIiIVIkd5ERERERERERERESkSuwgJyIiIiIiIiIiIiJVYgc5EREREREREREREakSO8jJbc+ePcjNzUVubi7WrFnjd9mFCxeiV69eyM3NxUUXXYSamhqvyx0+fBivvfYaJk+ejFNOOQV9+vTBoEGDcN555+H555/H7t27w/FRgrZmzRr3PtizZ4/fZV977TX3sjfeeCNsNluj57dt24bbbrsNhYWF6NOnD04//XT85z//wYEDB/yud926dZg+fTqGDh2KgoICnHXWWZg5cyZOnDjh8zVWqxVvvfUWJkyYgJNOOgkDBgzAxIkT8b///Q/19fXidwCAxx9/HLm5ubj33nt9LnP8+HG8+OKLOPfcc9G/f38UFBTgzDPPxH/+85+Y+04p9jBr1Jc1NTU1eP755zF27FgUFBRgyJAhuOSSS/Dxxx/D6XQ2W/6yyy5zf+ZA/04//XS/n5PUi1mjvqzxRkxdY7fb8c477+Dcc89F3759MWjQIFxyySVYtGiRpPcidWLWqC9rpNY1vqxatQq5ubl4/vnnRb+G1ItZw6wRmzWsa4KjEQRBiPZGUGzYs2cPRo0aBQCYO3cuhg4d6nW5hQsX4r777oPT6cSQIUPw+uuvIyUlpdlyc+bMwcsvv4y6ujoAQIcOHZCeno5Dhw7h4MGDEAQBOp0ON9xwA6677jpoNJrwfTiR1qxZg8svvxwAsGzZMnTq1Mnrcq+99hpeeOEFAMDYsWMxc+ZM6HQ69/O//fYbpk2bhvr6erRu3RodOnTAjh07UFdXh7S0NLz77rvo1atXs/UuXrwYd9xxB5xOJ9q1a4fMzEyUlpbCarWiQ4cOeP/999G+fftGr6mqqsLUqVNRUlICjUaDzp07Q6/XY+fOnbDb7ejRowfmzZuH9PT0gJ9/7dq1uPzyyyEIAiZMmICnnnqq2TLl5eWYOnUqDhw4AI1Gg44dO8JgMGDnzp2w2WxISUnBK6+8gsLCwoDvR+rErFFX1lRWVuLyyy/Hnj17oNVq0bVrVzgcDuzevRtOpxODBw/GW2+9BYPB4H7No48+ii1btvjcf4IgYMOGDQCAwsJCvP322372NqkVs0ZdWeONmLrG4XDgpptuwrJly5CQkICePXuivr4eFRUVAICJEyfiySefDPhepF7MGnVlTTB1jTe7d+/GJZdcgoMHD2L69Om47bbbAu5nUjdmDbNGTNawrgmBQPS33bt3CyaTSTCZTMIvv/zidZmFCxcKeXl5gslkEq644gqhrq7O63IPPvige1333XefUFFR0ej5yspK4dFHHxVyc3MFk8kk3HjjjYLD4ZD9M0n1yy+/uLd79+7dXpd57bXX3Mvcddddgt1ub/T8sWPHhMGDBwsmk0mYOXOmYLPZBEEQhOrqauGmm24STCaTMGrUKKG+vr7R68rLy4X8/HzBZDIJ8+bNE5xOpyAIgnDo0CHhkksuEUwmk3DxxRc3254777xTMJlMwmmnnSZs3LjR/XhFRYUwbtw4wWQyCddee23Az15TUyOcfvrp7s92zz33NFvGZrMJY8aMEUwmkzBp0iRh+/bt7ucOHz4sXHfddYLJZBIGDhwoHD58OOB7kjoxa9SVNRdffLFgMpmE8ePHCzt27HA/vnnzZuHUU08VTCaTMGPGDHE77m8vv/yyYDKZhOHDhzNryCdmjbqypikxdY0gCMJLL70kmEwmYeTIkUJpaan78VWrVgn9+vUTTCaT8PHHHwd8P1IvZo26skaOumbr1q3CyJEj3fvjueee87s8kSAwawSBWSMIgbOGdU3w2EFOboEC94svvnCH7VVXXSVYLBav65k/f75gMpmE3NxcYeHChX7fc/HixULv3r0Fk8kkzJ49W5bPEYpAgfv666+7n7///vu9/pFwBdIFF1zQ7Ln6+np3Y61pKN1zzz2CyWQSbrvttmavO3r0qDBgwADBZDIJP//8s/vx/fv3u7+TVatWNXvd77//7t7effv2+f3srj+SJ510ks+G5HfffSeYTCahX79+wt69e5s9b7FYhDPPPFMwmUzCrFmz/L4fqRezRj1Zs2HDBvfjZWVlzV739ddfCyaTSejbt6+7OA1k7dq1Qq9evYTc3FyhuLhY1GtInZg16skab8TUNSdOnBAGDhwomEwm4ccff2z2/Mcff+xuZMZCxwDFJmaNerIm1LrGbrcL8+fPF/r27eteDzvISSxmDbPGxVfWsK4JDccgJ1G+/PJL3HvvvXA6nTj99NMxa9YsJCUlNVuupqbGfSvLlClTcO655/pd75gxY9y3yLz00kvYtWuX7NsulzfeeAPPPfccAODiiy/GY489hoSE5ofQ559/DgA477zzmj2XmJjofvyrr75yP15fX4/Fixf7fF3r1q0xZsyYZq+zWCy48MILcdppp3kd0iQ3N9f9//fu3evzs/3444/4+OOP0adPH5xxxhk+l/vll18AAAMGDGh26xAAJCUlYfjw4QCATZs2+VwPkS/MGmVlTUJCAs4//3yce+656N69u8/XWSwWHDlypNnzTVmtVtx///1wOBw4//zzMWzYsICvIfKGWaOsrGlKbF3z3Xffobq6Gu3atcOpp57a7Plzzz0XRqMRe/fuxfr1632uh8gXZo2ysiaUuqaqqgrnnHMOZsyYAYvFgsmTJ2PAgAHN1kEUDGYNswZgXRMqXeBFSO0WLVqEe++9Fw6HA2effTaeffZZ6PV6r8t+8cUXOHHiBHQ6Ha688kpR67/hhhswf/58WK1WfPjhh7j77rsDvuazzz7DfffdJ/oz3HjjjbjppptEL9/UG2+8gWeffRZAwx+S+++/3+tyBw8eRGVlJQD4LHhcj69fvx42mw16vR5btmxBfX09NBqN39d98sknWLt2rfuxrl274j//+Y/P7d68eTOAhoDt3Lmz12VOnDiBBx98EImJiXjqqafwv//9z+f6LrjgApx00knIyMjwuYzw97QGUiaoIQKYNYDysqZv377o27evz9e5TqSlpqYiMzPT53Iu77zzDnbt2oW0tDTcfvvtAZcn8oZZo7ys8SSlrvn9998BAAMHDvT6fGJiIgoKCrB27VqsWbMGgwYN8rkuoqaYNcrLmlDqmurqapSVlaF79+544IEHcMopp+Cyyy7zuS4isZg1zBoX1jWhYQc5+fXVV1/hnnvugcPhwLhx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7tChQ16f/+GHH2C322EwGFBUVORzPUT+MGuUmzWh1DU5OTkAgD179vh8P9d2Zmdn+1yGyIVZo9ysAeSpa4jkwKxh1njLGtY1oWEHOYlWVFSECy+8EADw1VdfYcGCBc2WOffcc5GWlgabzYZXX31V1HrfeecdVFdXQ6fT4aKLLpJ1m+U2efJknHrqqQCAN954w/2HwiUtLc0dNL7GkHI9ftJJJ7mDs0ePHkhOTobD4cDGjRv9vq5///7ux958802MHj0at956q89t3rt3LwAgMTERrVq1QkZGBgYMGODzn+tMoudynmpqanDVVVe5z1ROnz4d//3vf0WdSSYSg1mjjKwBgEcffRT/93//h8cffzzg69q1a+f1+XXr1gEA+vXr575tkEgOzBplZE0odc1JJ50EAPj999+9vpfVanVPnOW5nURSMGuUkTWAPHUNUbgwa5g1rGtCww5ykuTee+91B8pjjz2G7du3N3q+ZcuW+Pe//w2gYeKITz75xO/6Vq5c6Q7mG2+8EV27dpV/o2X2xBNPoFWrVnA6nbjrrrtw9OjRRs+PHj0aAPDxxx83e63VanX/oZowYYL78cTERIwaNQpAw8QSTR0/fhzffPNNs9cNHz4cAFBWVubzNr53330XAHDqqadCr9djxIgR+OCDD3z+O+200wA0jPXreszTXXfdhT/++MM95tdtt93GCR5Idsya+M8az9f9/PPPXierslqteO+99wDA59XhmzZtAtDQQU4kN2ZN/GdNKHVNUVERkpKSsGvXrmaNaKBhbHOz2YzOnTtj0KBBXreHSAxmTfxnjefrQqlriMKJWaPurGFdExp2kJMkycnJeOaZZ6DT6VBXV4fbbrut2S0m48aNwxVXXAGgYVyoBx98ELt37260zMGDB/HMM8/ghhtugN1uR1FRkXvm4VjXtm1b90zRhw4dwj333NNoxuLLL78caWlp+O233/DYY4+5909NTQ3uvPNO7N69G507d8b48eMbrXf69OnQ6/X48ssv8cYbb8DpdAJoGL/rhhtuQE1NDQYOHIihQ4e6X3PSSSe5w/Puu+/Gb7/95n6uuroaDzzwAH744QcYDAa/Zy3FWrhwIZYvXw4AuPbaa3HppZeGvE4ib5g1ysiaM888Ez179oTdbscNN9yAbdu2uZ87dOgQbr75ZmzduhXp6em45pprmu0Du93ufk1+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IiIiIiIiIlIldpATERERERERERERkSqxg5yIiIiIiIiIiIiIVIkd5ERERERERERERESkSuwgJyIiIiIiIiIiIiJVYgc5EREREREREREREakSO8iJiIiIiIiIiIiISJVk7SDfsWMHBEGQc5VERERERERERERERGEhawf5zTffjFGjRuHYsWNyrpaIiIiIiIiIiIiISHaydpDv3r0bSUlJaN26tZyrJSIiIiIiIiIiIiKSnawd5CkpKXA6nXKukoiIiIiIiIiIiIgoLGTtIL/kkkuwc+dOzJkzR87VEhERERERERERERHJTifnygoKCjBgwADMnDkT7733Hvr37482bdrAYDD4fM0tt9wi5yYQEREREREREREREYkiawf5NddcA41GA0EQUFlZib179/pcVhAEaDQadpATERERERERERERUVTI2kE+ePBgOVdHRERERERERERERBQ2snaQz5s3T87VERERERERERERERGFjayTdBIRERERERERERERxQtZryD3VFVVhdWrV2P79u2orq7GPffcg/r6evzxxx8YMmRIuN6WiIiIiIiIiIiIiEgU2TvIBUHAyy+/jLfffhsWi8X9+D333IM9e/ZgypQp6NevH2bNmoX09HS5356IiIiIiIiIiIiISBTZh1i5++678dprr8FsNqNVq1YwGo3u544fPw5BEPD777/jsssug9lslvvtiYiIiIiIiIiIiIhEkbWD/Ntvv8WiRYuQnp6ON998E6tXr0ZeXp77+YEDB+K9995DRkYGtm/fjrlz58r59kREREREREREREREosnaQf7RRx9Bo9Hg2Wefxamnnup1mYEDB+KFF16AIAhYunSpnG9PRERERERERERERCSarB3kmzdvRvv27XHyySf7XW7QoEHo2LEjKioq5Hx7IiIiIiIiIiIiIiLRZO0gr6urQ6tWrUQtm56eDrvdLufbExERERERERERERGJppNzZZmZmdi5cycEQYBGo/G5nM1mQ0VFBTIzM+V8eyI3h8MJm8OJWrMNNXU2pCbrkWLQQ69LgFYr+9y0RKRyzBwikoKZQURKwCwjUi4e36Q2snaQDxkyBF9++SXef/99TJ482edy7777Lqqrq1FUVCTn2xMBACxWO9aW7MeCFWXYXlnlfjynYxomFfXAkPwsGBJl/ekTkUolJSXBZhewdss+Zg4RicI6hYiU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jTvvvLPRaw4cOICxY8cCAJYtW4ZOnTq5n3vyySdx6aWX4s0338SyZcvQs2dP/Pnnn9i1axc6duyIxx57LKKfL1bxAJaPVpvQ6OoNIrVjvsQHZhcpFTMoMB7/RPJSY+4wR4jimxpzK5yYibFBIwiCEO2NCNW2bdvwyiuvYO3atairq0OnTp1w9tln48orr0RqamqjZffs2YNRo0YBaN5BDgCVlZV45ZVXsGrVKlRVVSErKwsjRozA9OnTG12JLqfff/8dDocDGo0GRmPzg0EQBJj/nsHbaDRCo+GAbJHA/R4dcu93g8GAbt26ybFpcc9f1vD3Lg33l3hq2VfMmn+wrqFw4O+mAbPmH8waZeP3F13Mmn+wDRVd3MfhF819HEtZo4gO8ni3fv168GsgCo/k5GTVD43kwqwhCh9mzT+YNUThw6z5B7OGKHyYNf9g1hCFTyxlTVwPsaIUer0eNpsNCQkJSEpKivbmECmKwWCI9ibEDGYNUfgwa/7BrCEKH2bNP5g1ROHDrPkHs4YofGIpa3gFORERERERERERERGpEkfOJyIiIiIiIiIiIiJVYgc5EREREREREREREakSO8iJiIiIiIiIiIiISJXYQU5EREREREREREREqsQOciIiIiIiIiIiIiJSJXaQExEREREREREREZEqsYOciIiIiIiIiIiIiFSJHeREREREREREREREpErsICciIiIiIiIiIiIiVWIHORERERERERERERGpEjvIiYiIiIiIiIiIiEiV2EFORERERERERERERKrEDnIiIiIiIiIiIiIiUiV2kBMRERERERERERGRKrGDnIiIiIiIiIiIiIhUiR3kRERERERERERERKRK7CAnIiIiIiIiIiIiIlXSRXsD4smOHTswa9YsrFu3DkeOHEFWVhbGjBmDa6+9FsnJyZLWdeDAAbz66qsoLi7G/v37kZmZidNPPx033HAD0tPTvb5m06ZNePXVV7F582acOHECnTt3xr/+9S9MmTIFer3e62sWL16MuXPnYvv27XA4HMjLy8OUKVNw1llneV3eYrFg7ty5WLRoEXbv3g2j0YjBgwfj+uuvR15enqTPKBc17PeLLroIGzZs8Lndd999N6688kpJnzVU8bjfPb366qt48cUX8emnn6KgoMDrMtH8vcfj/o1Ennj7LIMGDUJ9fT02bdqk2H21bds2vPXW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3zRm+AxhYWHGWEO284d7xpdjja9/f47Ww8g9fP1+BMRrQzla1+U1Nn2NTbW98vPzUVRUhLCwMCxatAh9+/blNTbDlrqUJ7TZmCC3w4kTJ/Dhhx9i9+7dUCgU6NChA0aMGIF77723wQ0MWL6JAaC0tBQffvghtm/fjoqKCsTFxWHIkCGYPn262Zmy9+7di4ULF+LAgQPQarXo2LEjbrvtNtx5550mXwMTBAGrVq3C8uXLUVBQgODgYHTp0gVTpkzB9ddfb/IYCoUCixYtwoYNG3D27Fm0bt0aPXr0wIwZM5CamurIZWs2f7juJSUlWLhwIf744w9cvnwZLVq0QK9evTB16lSbA63YvO26N2YtQQ649373tuvrqnhi6rN0794dNTU1OHDggM9dqz59+qC6utrkcevr2rUr1q9f32DZjh078MUXX+DgwYOoqalBmzZtkJ6eDqVSicOHD/vctTJwJF468ln8AeOQe+o13s4f7htTn4EJcsf5wz3jy7HGl7+/5tTDyD18+X40EKsN5Whdl9fY9DU21fYaOHAgpk+fjvj4eKvXtT5/uMamPoO1upS722xMkBMRERERERERERGRX+IknURERERERERERETkl5ggJyIiIiIiIiIiIiK/xAQ5EREREREREREREfklJsiJiIiIiIiIiIiIyC8xQU5EREREREREREREfokJciIiIiIiIiIiIiLyS0yQExEREREREREREZFfYoKciIiIiIiIiIiIiPwSE+RERERERERERERE5JeYICciIiIiIiIiIiIiv8QEORERERERERERERH5JSbIiYiIiIiIiNxo/fr1SElJQUpKCubMmWOx7KRJk5CSkoJ3333XRWfnHMOGDUNKSgq+//57d58Kkd9grCEyjQlyIiIiIiIiIjdauXKl8e9r165FdXW1G8+GiHwVYw2RaUyQExEREREREbnJ2bNnsXPnTrRq1Qo9e/aEQqHAunXr3H1aRORjGGuIzGOCnIiIiIiIiMhNVq1aBb1ej169emHYsGEAgBUrVrj5rIjI1zDWEJnHBDkRERERERGRGwiCgNWrVwMABg8ejFGjRgEAjh8/jgMHDrjxzIjIlzDWEFnGBDkRERERERGRG+zcuRNnzpxBQEAAhg8fjk6dOqF79+4AgOXLl1vd/tChQ7jvvvvQp08f9OrVCxMmTMCKFSug0+malLU2Ud3s2bORkpKC2bNnN1humNCvtrYWv/zyCyZNmoS+ffuiR48euOWWW/Dll19Co9GY3GdZWRnefPNNjBgxAt27d8fQoUPx5ptvWh33+OTJk3j11VcxduxY9O3bF2lpaejfvz/uvvtufPfdd00+365du5CSkoIJEyZAo9Fg8eLFGDt2LHr06IG+ffti8uTJ2Lx5s9njXbx4Ee+99x7GjBmDXr16oWfPnrj11lvx2WefQa1Wm9xm8+bNmDZtGjIzM3Httddi0KBBmDlzJvLy8ix+NiJ3YKwxjbGGDALdfQJERERERERE/sgwYV5GRgZiY2MBADfddBMOHTqEn3/+Gc899xwiIyNNbrtz5058/vnnEAQBcrkcVVVVOHjwIA4ePIhffvkFH3/8MYKCgkQ71/nz52Px4sUICwtDQkICysrKcOzYMRw7dgwHDx7Eu+++26D88ePHcd999+HixYuQyWSQy+WoqKjA4sWLsX37diiVSpPH2bx5M5544gmo1WqEhYWhY8eOEAQBZ86cwa5du4x/3n777SbbajQa3H///dixYwdat26Nzp07o7i4GDt37sTOnTvxn//8B3fccUeDbfbt24dHHnkE5eXlCAwMROfOnaFWq3Hs2DEcPXoUv/76Kz7//HPjtdRqtZg9e7Zx7Obo6GikpKTgzJkzWL9+vfF7mzhxohiXnUgUjDVNMdZQfexBTkRERERERORiVVVV+OWXXwAAY8eONS6/6aabEBgYiNraWuOQCKYcOHAA11xzDf773/9i9erV2Lx5MxYuXIjw8HD8/vvv+Pjjj0U938WLF+OBBx7Azp07sWbNGmzfvh3Tpk0DAGzYsAHHjh0zltVqtZg5cyYuXryI6667Dr/++itWrVqFLVu24NNPP8W5c+dw+fLlJseoqKjAc889B7VajTvuuAO5ublYu3Yt1q1bhz/++AOTJk0CAKxfvx75+flNtj969CgOHjyI//u//8POnTuxatUq/Pbbb8jMzARQl3jTarUNjvfYY4+hvLwcgwcPxrZt27B27Vps3LgR33//PaKiorB792589NFHxm3ee+89rFu3DnFxcfjss8+Qm5uLlStXIjc3Fy+88AIkEgleeeUV/PHHH+JceKJmYqxhrCHrmCAnIiIiIiIicrH169dDpVIhODgYI0aMMC6Pjo42JlksTaDXsmVLLFy4EPHx8cZlQ4cOxbPPPgsAWLJkCRQKhWjnm52djSeffBLBwcEAAKlUiscff9zY6/TPP/80lv3vf/+LgoICREZG4v3330d0dLRx3ZAhQ/Diiy+aPMbevXuh0WjQpk0bvPDCCwgNDTWuCwsLw+zZsyGTyQAAJ06cMLmPRx99FGPGjDH+f4sWLfD0008DAK5evYri4mLjum+//RYXL15EfHw8PvjgA7Rp08a4Lj09Hc899xwAYPXq1dDr9SgvL8eXX34JAFiwYAEGDRpkLC+VSjFp0iTcc889EAQB8+fPN3MliVyLsaYpxhpqjAlyIiIiIiIiIhdbtWoVgLrxeiMiIhqsM/TyNLyyb8qoUaMQFRXVZPnNN9+MkJAQVFdXY9++faKd77Bhw5osk0qlSEhIAABUVlYal2/btg0AMHz4cJPDNvzjH/9AixYtmiwfPnw49u/fj82bNyMwsOmIsLW1tWjVqhUAmB02ITs7u8myzp07G/9e/zxzcnIA/H3NGhsxYgTWrFmDTZs2ISAgAL/++ivUajW6dOmCtLQ0k8e/+eabAdSN2VxeXm6yDJErMdYw1pB1HIOciIiIiIiIyIUKCgpw6NAhAA2HPDC44YYbEBYWBoVCgeXLl+O6665rUqZbt24m9x0UFITExEQcP34chYWFDXoeNodh3OLGDMme+pPZGXpOdu3a1eQ2MpkMXbp0wf79+83u8/jx4zh+/DhOnz6NU6dOoaCgAPn5+cZJ+gRBsPk86yek6p/nqVOnAACpqakm9xUUFIRrrrnG+P+GoRbOnz/fZHxhg/rnVVRU1KBHK5GrMdYw1pBtmCAnIiIiIiIicqEffvjB+PcHH3zQYtktW7bg0qVLiImJabA8PDzc7DaGdSqVqhln2ZBhuAFz6idrDD0nw8LCzJY3NyHgr7/+ivnz5+Po0aMNlrdt2xYjR47Eb7/9hoqKClHO8+rVq1bPs76qqioAQHV1dYNhHsyp34OUyB0YaxhryDZMkBMRERERERG5iEajwdq1awHUje1bf+zb+gRBQFlZGTQaDX744QdMnz69wXpLY/4akistW7Y0uV9TxBxD2DA0QXV1tdkyphJqO3fuxPTp06HX69GzZ0+MGTMGcrkcnTt3NvaOFKuXKgCEhoaiqqoKNTU1NpcH6oZDeP/990U7DyJnYKypw1hDtmCCnIiIiIiIiMhFfv31V+N4sYsXL0Z6errZsmPGjMGJEyfw3XffYdq0aQgI+HsasaKiIpPbKBQK47ADcrncuFwqlQIA1Gq1ye3Kysrs+yAWJCUl4cCBAzh27JjJ9YIgoLCwsMnyRYsWQa/X47rrrsPixYuN52ygVqtx5coV0c4zMTERhw8fRn5+PkaOHNlkvUajwd133402bdrg6aefRlJSEoC/hz8wRalU4vDhw2jXrh3at2/f5DMQuQpjDWMN2Y6TdBIRERERERG5iGHIA7lcbjFhBQD/+te/AAClpaX47bffGqz7+eefTfZG/O6776DRaNCmTRt0797duLx169YATCe7zp8/jyNHjtj3QSy48cYbAQBbt27FhQsXmqzPycnBxYsXmyw/c+YMgLpxek0le9asWWMcF1ir1Tb7PIcMGQIAWLdunclk3m+//YY///wT27dvR3R0NIYMGQKpVIqioiL88ccfJvf55ZdfYtKkSbj55pvNTu5H5AqMNYw1ZDsmyImIiIiIiIhc4OLFi9i+fTsAYNy4cVbL33zzzcYxa1esWNFg3YULF/Doo4/i8uXLxmXr16/H22+/DQB46KGHEBQUZFzXp08fAMDq1auxb98+4/KSkhI89NBDxmSQGIYOHYrevXtDoVBg+vTpOH36tHHd3r178fzzz5vcLjk5GQDw008/Nej1WVtbi2XLluGVV14xLhNjzOM777wTrVq1wsmTJ/HUU08ZxwkGgEOHDmHOnDkAgDvuuANhYWGIj4/H7bffDgB48sknsXXrVmN5vV6P77//Hh9++CEA4K677kJERESzz5HIEYw1jDVkHw6xQkREREREROQCa9asgVarhUwmw9ixY62Wj4iIwJgxY/Dtt9/i119/xdmzZ43rRowYgf/+978YOnQounTpgsuXL+PcuXMAgIkTJ+LOO+9ssK/Jkydj7dq1uHTpEu6880506dIFQF0vz5YtW+Kee+7Bl19+KcrnDAgIwNtvv4377rsPR48exYgRIyCXy6FUKlFSUoIOHTogNja2ybAIM2bMQG5uLi5evIgxY8YgMTERQUFBOHnyJBQKBaKiopCUlITjx4/j/PnzzT7P6OhofPjhh3jooYewadMm5OTkoGvXrqisrMSZM2cgCAIGDhyIxx57zLjNc889hwsXLiAnJwcPPvgg2rZti9jYWJSWlhoTiCNGjMDjjz/e7PMjchRjDWMN2Yc9yImIiIiIiIhcYPXq1QCAYcOGISoqyqZt7rjjDgB1vQa/++474/IRI0bgiy++QPfu3VFcXIzKykr0798fH330EV588cUm+4mLi8PKlSvxr3/9C+3atcPJkydRVVWF8ePHY+3atcYklljat2+Pb7/9Fo8++iiSkpJQXFyM6upqjBs3Dt9++61xcr36rr32Wvz4448YO3Ys2rdvj1OnTuHUqVPo1KkTpk+fjvXr1+Puu+8GAGzbts3sJID26NevH9avX4/Jkyejffv2KCgoQHl5Obp37465c+di0aJFCA4ONpYPDg7Gxx9/jHfffReDBg2CRqPBsWPHoNPp0L9/f7z55puYP38+xwMmt2KsYawh+0gEMb5lIiIiIiIiIiIiIiIvwx7kREREREREREREROSXOAY5GZ05cwbDhw8HACxZsgT9+/c3W3bNmjV49tlnodfr0atXL3z22WcmJwW4dOkSvv/+e/z+++8oKSlBRUUFQkJCkJiYiAEDBmD8+PHo2LGj0z6TvXbt2mV8jWbLli3o0KGD2bIff/wx5s+fDwC44YYb8O6770ImkxnXnzhxAh9//DF27dqFyspKtG3bFoMHD8aDDz6I2NhYs/vdt28fFi1ahP3790OhUKBdu3a44YYb8MADD6Bly5Ymt1Gr1ViyZAl++uknFBUVQSqVIjExEf/4xz8wceLEBq/p1FddXY1Fixbhl19+wenTpxEaGoouXbrglltuwfjx4xEQYPo3tEmTJmH37t1mPwNQd49cc801FsuQf2KsYayxNdaYMmPGDGzevBkPP/wwHnnkEZu3I//DWMNYY0+sOXr0KBYvXow9e/agvLwcERER6NOnD+6//3707NnT7HZERERE5P04xAoZ2dqQrN+IzMjIwCeffILw8PAm5RYvXowPPvgACoUCQN24UFFRUbh48SLKysogCAICAwMxY8YMPPjgg5BIJM77cDaytSFZvxE5evRozJs3D4GBf//etHfvXkydOhW1tbVo3bo12rdvj+LiYigUCkRGRuKrr74ymTzesGEDZs6cCb1ej9jYWMTExCA/Px9qtRrt27fHN998g3bt2jXYpqKiAlOmTEFeXh4kEgk6duwImUyGkydPQqvVokuXLli6dGmTccdKS0tx991348yZM5BKpUhISIBOp8Pp06eh1+vRr18/fPbZZwgJCWlynhkZGaioqECPHj3Mjnf1xhtv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F5qM21hWVoa33noLM2bMgFarRXZ2Nh544AFXfYxmadu2LebOnQug7jXdZ555xjisCADcfffdiIyMxN69e/HKK68Yr091dTWeeuopnD59Gh07dsSYMWMa7Hf69OmQyWRYu3YtPv30U+j1egB145LOmDED1dXV6NOnD/r372/cpkePHsZG4axZs7B3717juqqqKjz//PP49ddfERIS0qA31g033ICuXbtCq9VixowZOHHihHHdxYsX8eijj+L48eOIiorCtGnTjOtuv/12tG7dGkqlEo888kiDV5lPnz6NadOm4cKFC0hMTMSdd97p8DUmYqzx71hD5CqMNf4da1q2bIkHH3wQAPB///d/+OGHH4znWV1djdmzZ6O0tBRt27Y1vm1ARERERL5HItSvAZNfO3PmjLG3z5IlSxo0WBr74IMP8OGHHwIAJk2ahBdeeKFJme+//x6vvvoqlEolAKBDhw6IiopCRUUFTp06BUEQEBgYiIcffhgPPPAAAgLc/3vNrl27cPfddwMAtmzZgg4dOpgtO3v2bKxevdr49ylTphjX5eTk4JFHHoFGo0GrVq3QoUMHFBcXo6amBi1btsQ333xjnPSpvuXLl+Oll16CIAho06YN2rZti4KCAtTW1iI+Ph4rVqxA27ZtG2xz5coVTJ06FUePHgUAxMfHo1WrVsbtIiIi8M4772DIkCENtjt16hSmTJmCM2fOICAgAJ06dUJoaCjy8/Oh1WrRpk0bfPzxx0hPT2+w3d69e/Hggw+isrISUqkUCQkJCAwMREFBAfR6PTp27IgvvviCryKTWYw1jDW2xBpzJk2ahN27d+Phhx92aBxm8h+MNYw1tsQavV6POXPmGHvIx8TEIC4uDkVFRVAoFGjVqhUWLFiAPn362HrZiYiIiMjLMEFORvY0JLVaLe644w7juJILFiwwblvfpUuX8MMPP+C3335DQUEBqqurERYWhqSkJAwYMAC333474uPjnfOBHGBPQ7K6uhpjx45FaWkpZDIZli9f3qDR9ddff+GTTz7B7t27cfXqVbRu3RoDBw7EjBkzLCaP9+7di88++wz79+9HdXU1YmNjkZ2djYceegjR0dEmt1Gr1fjmm2+wbt06FBUVQafToV27dhg8eDCmTp1qnDSrsaqqKnz55Zf473//i1OnTkEikaBjx44YPnw4Jk+ejNatW5vc7sKFC1i8eDG2bduGs2fPIjAwEImJiRgxYgQmT56M0NBQs5+PiLGGscbWWGMKE+RkK8Yaxhp7Ys22bdvwzTff4NChQ6ipqUFcXByGDBmCqVOnGif4JCIiIiLfxAQ5EREREREREREREfkl97/7SURERERERERERETkBkyQExEREREREREREZFfYoKciIiIiIiIiIiIiPwSE+RERERERERERERE5JeYICciIiIiIiIiIiIiv8QEORERERERERERERH5JSbIiYiIiIiIiIiIiMgvMUFORERERERERERERH6JCXIiIiIiIiIiIiIi8ktMkBMRERERERERERGRXwp09wkQUFxcDJVKhZCQECQlJbn7dIjIRzHWEJErMNYQEREREZE3YYLcA6hUKigUCpPrdDodDhw4AADo2bMnpFKpC8+MXInfNTmbpVgD8B4kx/C+ocZMxRreJ96P3yERERER+SomyImIiKhZIiIioNPp3H0aRERERERERHZjgpz8lk6nh0anR41Sg2qFBhFhMoSHyCALDIBUyuH5iYgsqR9DA8PbonVYEDRaAYCeMZSIjFjfIiIiIiJPxwQ5+SWVWovdeeexMqcARaUVxuXJ8ZEYl90FGWlxCAni40FEZApjKBHZgrGCiIiIiLwBa6Tkd1RqLRavy8PPuSVN1hWVVmDesn0YnZWIKWPS2GgjImqEMZSIbMFYQURERETegu81kl/R6fTYnXfeZGOtvg25JdiTdwE6nd41J0ZE5AUYQ4nIFowVRERERORNmCAnv6LR6fHD1nybyq7MyYeGDTYiIiPGUCKyBWMFEREREXkTJsjJr9QoNSg+W2lT2cLSCtQoNU4+IyIi78EYSkS2YKwgIiIiIm/CBDn5lWqFfQ2wajbYiIiMGEOJyBaMFURERETkTZggJ78SESazr3yofeWJiHwZYygR2YKxgoiIiIi8CRPk5FfCQ2VIjo+0qWzn+EiEh7DBRkRkwBhKRLZgrCAiIiIib8IEOfkVmTQA47K72FR2XHZXyAL5iBARGTCGEpEtGCuIiIiIyJuwNkp+RSoNQEZaHEZlJVosNzorEf3SYiGV8hEhIjJgDCUiWzBWEBEREZE3CXT3CRC5WkhQIKaOSUN6cgx+yMlHUWmFcV1yfCTGZ3dFv7RYhATx8SAiaowxlIhswVhBRERERN6CNVLySyFBgcjq3g790mJRo9SgWqlBRKgM4SEyyAID2JOJiMiCxjG0olqFiNAgtAwPZgwlIiPWt4iIiIjIGzBBTn5LKq1rmIUEBSI6MtTdp0NE5FUMMVQmleDS+VO4VKFDdEoKE15E1ADrW0RERETk6ZggJyIiomaprq529ykQEREREREROYTdvIiIiIiIiIiIiIjILzFBTkRERERERERERER+iQlyIiIiIiIiIiIiIvJLTJATERERERERERERkV9igpyIiIiIiIiIiIiI/BIT5ERERERERERERETkl5ggJyIiIiIiIiIiIiK/xAQ5EREREREREREREfklJsiJiIiIiIiIiIiIyC+JmiAvLi6GIAhi7pKIiIiIiIiIiIiIyClETZA/+uijGD58OK5cuSLmbomIiIiIiIiIiIiIRCdqgvz06dMIDg5G69atxdwtEREREREREREREZHoRE2Qh4eHQ6/Xi7lLIiIiIiIiIiIiIiKnEDVBfuedd+LkyZNYvHixmLslIiIiIiIiIiIiIhJdoJg7S09PR+/evTFv3jx8/fXX6NWrF9q0aYOQkBCz2zz22GNingIRERERERERERERkU1ETZBPmzYNEokEgiCgtLQUZ8+eNVtWEARIJBImyImIiIiIiIiIiIjILURNkPfr10/M3REREREREREREREROY2oCfKlS5eKuTsiIiIiIiIiIiIiIqcRdZJOIiIiIiIiIiIiIiJvIWoP8voqKiqwY8cOFBUVoaqqCs888wxqa2tx8OBBZGRkOOuwREREREREREREREQ2ET1BLggCPvjgA3zxxRdQqVTG5c888wzOnDmDyZMno2fPnvjoo48QFRUl9uGJiIiIiIiIiIiIiGwi+hArs2bNwscffwylUolWrVohNDTUuO7q1asQBAEHDhzApEmToFQqxT48EREREREREREREZFNRE2Q//e//8W6desQFRWFRYsWYceOHUhNTTWu79OnD77++mtER0ejqKgIS5YsEfPwREREREREREREREQ2EzVB/u2330IikeDtt9/GoEGDTJbp06cP5s+fD0EQsGnTJjEPT0RERERERERERERkM1ET5EeOHEG7du1w3XXXWSzXt29fxMfHo6SkRMzDExERERERERERERHZTNQEuUKhQKtWrWwqGxUVBa1WK+bhiYiIiIiIiIiIiIhsFijmzmJiYnDy5EkIggCJRGK2nEajQUlJCWJi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YeiVVFBQYHK9YbmpnpKNLViwAI8++ih27Nhhcv358+cB/J0oJyIiIiIiIiIiIiLv5nAP8iVLlgBAg2FJDMtcZciQIVi3bh02bdqECRMmNFh35coV7Nq1CzKZDAMGDLC6r+LiYmzatAkhISHIzMxssn716tUAgKFDh4py7kRERERERERERETkXg4nyDMyMmxa5kw33HAD2rdvj99//x1ff/017rrrLgB1Y48///zzUCgUuOOOOxATE2PcRqPR4NSpUwCATp06QSaTAQDuvPNOrFu3DmvXrsXAgQMxduxY4zZLlizBjz/+iFatWuHuu+924SckIiIiIiIiIiIiImdxOEFuyrPPPoukpCRMmzbNatm5c+ciPz8fS5cudfh4ISEheOONNzBt2jTMnTsXK1euRIcOHbB//36UlZWhW7dueOqppxpsc+HCBYwePRoAsGXLFnTo0AEA0KtXLzz55JN4++238fTTT+Pzzz9HQkIC8vPzUVRUhLCwMHz00UeIjo52+Hz9lU6nh0anR41Sg2qFBhFhMoSHyCALDIBU2qxRfoiIfBrjJ5Fv4zNOREREROR+oibIV69ejT59+tiUIN+7dy9OnjzZ7GP2798f33//PT788EPs3r0bBQUF6NChA8aPH497770XERERNu9r2rRpSE9PxxdffIGDBw+isLAQbdq0wYQJEzB9+nTEx8c3+3z9jUqtxe6881iZU4Ci0grj8uT4SIzL7oKMtDiEBIl6GxIR+QTGTyLfxmeciIiIiMgzOFzrLikpwY8//thk+blz5/Dee++Z3U4QBJw9exYnTpxA69atHT18A3K5HO+//75NZTt06IC//vrL7PrMzEyTY5CT/VRqLRavy8PPuSVN1hWVVmDesn0YnZWIKWPS2AAkIqqH8ZPIt/EZJyIiIiLyHA7XuDt27IiNGzeipKTEuEwikeDcuXP45JNPLG4rCAKAujHEyTfpdHrszjtvsuFX34bcElybHIOs7u34KjERERg/iXwdn3EiIiIiIs/icIJcKpXi+eefx8KFC43L9uzZgxYtWiA1NdXsdgEBAQgLC0O3bt1w//33O3p48nAanR4/bM23qezKnHz0S4tl44+ICIyfRL6OzzgRERERkWdp1jubAwcOxMCBA43/n5qaCrlc3qyJN8k31Cg1KD5baVPZwtIK1Cg1fIWYiAiMn0S+js84ERER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dY14yJAhAIBNmzY1WXflyhXs2rULMpkMAwYMsHlfv/zyC/R6fYN1Go0GW7ZsAQBkZ2c397S9klQagJCgup49CXEtER0ZipDgQJMNupCgQEwdk4ZZE/siOT6ywbqjJeXGBqMl7kwQEZFvsyeeic1SfEyOj8SsiX0xZUyaE3uxW1Y/qWcJYzR5E3c98+563vkcExERERHZx6t7kN9www1o3749fv/9d3z99de46667ANSNF/78889DoVDgjjvuQExMjHEbjUaDU6dOAQA6deoEmUwGAOjduzfS09Nx+PBhvPPOO5g5cyYkEgl0Oh1effVVnDt3DoMHDxZlHER/YK3HlnuHOSAich939mK39fwYo4nE4a7nnc8xEREREZHtvLpWHBISgjfeeAPTpk3D3LlzsXLlSnTo0AH79+9HWVkZunXrhqeeeqrBNhcuXMDo0aMBAFu2bEGHDh2M615//XVMnDgRixYtwpYtW9C1a1ccO3YMp06dQnx8PF555RWXfj5vJ5UGNOi11XidJyeIiIicyVJ89ASensQn8ibuet75HBMRERER2UYiCILXDx564sQJfPjhh9i9ezcUCgU6dOiAESNG4N5770VERESDsmfOnMHw4cMBNE2QA0BpaSk+/PBDbN++HRUVFYiLi8OQIUMwffr0Bj3RxXTgwAHodDpIJBKEhjZsOAmCAKVSCQAIDQ2FRCIxtQvyAfyunSMkJARJSUnuPg2PYCnWALwHyTG8b+ow1vzNVKzhfeL9+B16BsYaIiIiIvH5RILc2/3555/g10DkHGFhYRwa6X8Ya4ich7Hmb4w1RM7DWENEREQkPq8eYsVXyGQyaDQaBAQEIDg42N2nQ+RTQkJC3H0KHoOxhsh5GGv+xlhD5DyMNURERETiYw9yIiIiIiIiIiIiIvJLnJ2HiIiIiIiIiIiIiPwSE+RERERERERERERE5JeYICciIiIiIiIiIiIiv8QEORERERERERERERH5JSbIiYiIiIiIiIiIiMgvMUFORERERERERERERH6JCXIiIiIiIiIiIiIi8ktMkBMRERERERERERGRX2KCnIiIiIiIiIiIiIj8EhPkREREREREREREROSXmCAnIiIiIiIiIiIiIr/EBDkRERERERERERER+SUmyImIiIiIiIiIiIjILzFBTkRERERERERERER+iQlyIiIiIiIiIiIi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kSOIiopCv379cP78eRw8eBBBQUH49NNPkZmZKfal9Tj+8F3v2LEDDz74IJRKJdq3b4+0tDSUl5dj//79AIDZs2fjnnvuEfOykh384R5kvBGfP9w3jRk+Q1hYmDF+kWX+cJ/4enzxh++Q9RQiIiIicjUmyG104sQJfPjhh9i9ezcUCgU6dOiAESNG4N57723QEAEsN0YAoLS0FB9++CG2b9+OiooKxMXFYciQIZg+fXqDXj/17d27FwsXLsSBAweg1WrRsWNH3HbbbbjzzjsRFBTUpLwgCFi1ahWWL1+OgoICBAcHo0uXLpgyZQquv/56k8dQKBRYtGgRNmzYgLNnz6J169bo0aMHZsyYgdTUVEcum1fyh++6pKQECxcuxB9//IHLly+jRYsW6NWrF6ZOnYq+ffs6ctlIRP5wDzLeiM8f7htTn4EJcvv4w33i6/HFH75D1lOIiIiIyJWYICciIiIiIiIiIiIiv8QxyImIiIiIiIiIiIjILzFBTkRERERERERERER+iQlyIiIiIiIiIiIiIvJLTJATERERERERERERkV9igpyIiIiIiIiIiIiI/BIT5ERERERERERERETkl5ggJyIiIiIiIiIiIiK/xAQ5EREREREREREREfklJsiJiIiIiIiIiIiIyC8xQU5EREREREREREREfokJciIiIiIiIiIiIiLyS0yQk+jWr1+PlJQUpKSkYM6cORbLTpo0CSkpKXj33XdddHbOMWzYMKSkpOD7779396kQ+Q3GGiJyBcYaIiIiIiLfxgQ5iW7lypXGv69duxbV1dVuPBsi8lWMNUTkCow1RERERES+jQlyEtXZs2exc+dOtGrVCj179oRCocC6devcfVpE5GMYa4jIFRhriIiIiIh8HxPkJKpVq1ZBr9ejV69eGDZsGABgxYoVbj4rIvI1jDVE5AqMNUREREREvo8JchKNIAhYvXo1AGDw4MEYNWoUAOD48eM4cOCAG8+MiHwJYw0RuQJjDRERERGRf2CCnESzc+dOnDlzBgEBARg+fDg6deqE7t27AwCWL19udftDhw7hvvvuQ58+fdCrVy9MmDABK1asgE6na1LW2uRRs2fPRkpKCmbPnt1guWGSrdraWvzyyy+YNGkS+vbtix49euCWW27Bl19+CY1GY3KfZWVlePPNNzFixAh0794dQ4cOxZtvvml1LNKTJ0/i1VdfxdixY9G3b1+kpaWhf//+uPvuu/Hdd981+Xy7du1CSkoKJkyYAI1Gg8WLF2Ps2LHo0aMH+vbti8mTJ2Pz5s1mj3fx4kW89957GDNmDHr16oWePXvi1ltvxWeffQa1Wm1ym82bN2PatGnIzMzEtddei0GDBmHmzJnIy8uz+NmI3IGxxjTGGiJxMdaYxlhDRERERL4m0N0nQL7DMIlVRkYGYmNjAQA33XQTDh06hJ9//hnPPfccIiMjTW67c+dOfP755xAEAXK5HFVVVTh48CAOHjyIX375BR9//DGCgoJEO9f58+dj8eLFCAsLQ0JCAsrKynDs2DEcO3YMBw8exLvvvtug/PHjx3Hffffh4sWLkMlkkMvlqKiowOLFi7F9+3YolUqTx9m8eTOeeOIJqNVqhIWFoWPHjhD+v737j6myeuA4/lF+JSIpN/wBrSCQspK1WpO2DNTVtRXwh7UJifpHGdJCZ7kZ6WrNf9pikWnOLGKtrUAFgtsPSYULQdRETRswQRDEBPGSAqFwifv9g/EE3YuV3Gjf7vu1ucE553nuuY/bZ5yzc87jcKitrU3ff/+98S8zM9PpWrvdrueee07fffedZs2apYiICDU3N6u6ulrV1dV6/fXXlZSUNOaampoavfjii7LZbPL29lZERIQGBgZUV1en2tpaWa1Wffjhh8azHBwc1JYtW4zzVE0mk+688061tbXJYrEY/2+rVq1yx2MH3IKscUbWAO5H1jgjawAAAPBfxApyuEVPT4+++eYbSVJCQoJR/uSTT8rb21v9/f3GNmVXTpw4oQULFqikpEQFBQU6dOiQ9uzZo+nTp+vbb7/V7t273drf7OxsPf/886qurlZhYaEqKiq0bt06SdKXX36puro6o+3g4KBeeukldXZ2KiYmRlarVfn5+Tp8+LDef/99XbhwQV1dXU6fceXKFWVkZGhgYEBJSUmqqqpSUVGRiouLVVlZqZSUFEmSxWJRQ0OD0/W1tbX68ccf9dZbb6m6ulr5+fkqLy/XQw89JGl4MDw4ODjm8zZs2CCbzaZHHnlEZWVlKioq0tdff619+/YpKChIP/zwg3bt2mVc884776i4uFhz587VBx98oKqqKh04cEBVVVXaunWrpkyZou3bt6uystI9Dx6YILKGrAEmA1lD1gAAAMBzMEEOt7BYLLp27Zr8/PxkNpuNcpPJZAx8rvdSq8DAQO3Zs0ehoaFGWVxcnF555RVJ0scff6y+vj639XfJkiXatGmT/Pz8JEleXl7auHGjsRLs2LFjRtuSkhI1Njbq5ptv1o4dO2QymYy62NhYbdu2zeVnHD16VHa7XcHBwdq6daumTZtm1Pn7+2vLli3y8fGRJJ0+fdrlPdLT0xUfH2/8PmPGDG3evFmSdPnyZTU3Nxt1ubm56uzsVGhoqN59910FBwcbdQsXLlRGRoYkqaCgQENDQ7LZbMrJyZEkvffee1q8eLHR3svLSykpKVq7dq0cDoeysrLGeZLA5CJrnJE1gPuRNc7IGgAAAPxXMUEOt8jPz5c0fIZmQEDAmLqRlVcj22hdefzxxxUUFORUnpiYqJtuukm9vb2qqalxW3+XLl3qVObl5aXbb79dktTd3W2Ul5WVSZKWLVvmciv1E088oRkzZjiVL1u2TMePH9ehQ4fk7e18mlF/f79mzpwpSeNuZV6yZIlTWUREhPHz6H6WlpZK+v2Z/ZHZbFZhYaEOHjyoqVOnymq1amBgQJGRkbrnnntcfn5iYqKk4XNUbTabyzbAZCJryBpgMpA1ZA0AAAA8B2eQY8IaGxt18uRJSWO3IY949NFH5e/vr76+Pn366aeKiYlxanP33Xe7vLevr6/CwsJUX1+vM2fOjFkNNBEjZ4n+0cgAbPQLpkZWM82fP9/lNT4+PoqMjNTx48fHvWd9fb3q6+t17tw5tba2qrGxUQ0NDcaLsxwOx1/u5+hB4uh+tra2SpLuuusul/fy9fXVggULjN9Htj+3t7c7nfk5YnS/mpqaxqwyAyYbWUPWAJOBrCFrAAAA4FmYIMeE7d+/3/h5/fr11217+PBhXbp0SbfccsuY8unTp497zUjdtWvXJtDLsUa2AI9n9ABqZDWTv7//uO3He0mX1WpVVlaWamtrx5TPnj1by5cvV3l5ua5cueKWfl6+fPlP+zlaT0+PJKm3t3fM1uvxjF7VBfwbyBqyBpgMZA1ZAwAAAM/CBDkmxG63q6ioSNLweZujz6MczeFw6OLFi7Lb7dq/f79SU1PH1F/vHM6RAU9gYKDL+7riznM9R7YL9/b2jtvG1SC3urpaqampGhoa0n333af4+HhFRUUpIiLCWLHkrpVjkjRt2jT19PTo119//cvtpeEtyjt27HBbP4B/AlkzjKwB/llkzTCyBgAAAJ6ECXJMiNVqNc5wzM7O1sKFC8dtGx8fr9OnTysvL0/r1q3T1Km/H4Hf1NTk8pq+vj5jK3BUVJRR7uXlJUkaGBhwed3Fixf/3he5jvDwcJ04cUJ1dXUu6x0Oh86cOeNUvnfvXg0NDSkmJkbZ2dlGn0cMDAzol19+cVs/w8LCdOrUKTU0NGj58uVO9Xa7XatXr1ZwcLA2b96s8PBwSb9vSXbl6tWrOnXqlObNm6eQkBCn7wBMFrKGrAEmA1lD1gAAAMDz8JJOTMjINuSoqKjrDiIlaeXKlZKk8+fPq7y8fEzdV1995XKFUF5enux2u4KDgxUdHW2Uz5o1S5LrAWh7e7t++umnv/dFruOxxx6TJB05ckQdHR1O9aWlpers7HQqb2trkzR8dqarAVhhYaFxVufg4OCE+xkbGytJKi4udjnALi8v17Fjx1RRUSGTyaTY2Fh5eXmpqalJlZWVLu+Zk5OjlJQUJSYmjvvCLWAykDVkDTAZyBqyBgAAAJ6HCXLcsM7OTlVUVEiSVqxY8aftExMTjXMkP/vsszF1HR0dSk9PV1dXl1FmsViUmZkpSUpLS5Ovr69R98ADD0iSCgoKVFNTY5SfPXtWaWlpxgDNHeLi4nT//ferr69PqampOnfunFF39OhRvfrqqy6vu+OOOyRJX3zxxZiVWP39/frkk0+0fft2o8wd55AmJydr5syZamlp0csvv2yc3SlJJ0+e1GuvvSZJSkpKkr+/v0JDQ/X0009LkjZt2qQjR44Y7YeGhrRv3z7t3LlTkvTMM88oICBgwn0EbgRZQ9YAk4GsIWsAAADgmThiBTessLBQg4OD8vHxUUJCwp+2DwgIUHx8vHJzc2W1WvXzzz8bdWazWSUlJYqLi1NkZKS6urp04cIFSdKqVauUnJw85l5r1qxRUVGRLl26pOTkZEVGRkoaXnkVGBiotWvXKicnxy3fc+rUqcrMzNSzzz6r2tpamc1mRUVF6erVqzp79qxuvfVWzZkzx2mr8gsvvKCqqip1dnYqPj5eYWFh8vX1VUtLi/r6+hQUFKTw8HDV19ervb19wv00mUzauXOn0tLSdPDgQZWWlmr+/Pnq7u5WW1ubHA6HHn74YW3YsMG4JiMjQx0dHSotLdX69es1e/ZszZkzR+fPnzcG9WazWRs3bpxw/4AbRdaQNcBkIGvIGgAAAHgmVpDjhhUUFEiSli5dqqCgoL90TVJSkqThlTx5eXlGudls1kcffaTo6Gg1Nzeru7tbixYt0q5du7Rt2zan+8ydO1cHDhzQypUrNW/ePLW0tKinp0dPPfWUioqKjIGlu4SEhCg3N1fp6ekKDw9Xc3Ozent7tWLFCuXm5hovvBrt3nvv1eeff66EhASFhISotbVVra2tuu2225SamiqLxaLVq1dLksrKysZ9Mdff8eCDD8pisWjNmjUKCQlRY2OjbDaboqOj9cYbb2jv3r3y8/Mz2vv5+Wn37t16++23tXjxYtntdtXV1em3337TokWL9OabbyorK4szOvGvImvIGmAykDVkDQAAADzTFIc7/noFAAAAAAAAAOD/DCvIAQAAAAAAAAAeiQlyAAAAAAAAAIBHYoIcAAAAAAAAAOCRmCAHAAAAAAAAAHgkJsgBAAAAAAAAAB6JCXIAAAAAAAAAgEdighwAAAAAAAAA4JGYIAcAAAAAAAAAeCQmyAEAAAAAAAAAHokJcgAAAAAAAACAR2KCHAAAAAAAAADgkZggBwAAAAAAAAB4JCbIAQAAAAAAAAAeiQlyAAAAAAAAAIBHYoIcAAAAAAAAAOCRmCAHAAAAAAAAAHgkJsgBAAAAAAAAAB6JCXIAAAAAAAAAgEdighwAAAAAAAAA4JH+By0+HuVbX0dxAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1500x900 with 13 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "m00144_ko_correlations = v5_correlations.loc[[i for i in modules['M00144'] if i in v5_correlations.index]].sort_values('p_value')\n",
    "m00144_ko_abunds = ko_abunds_v5.loc[m00144_ko_correlations.index].unstack().reset_index()\n",
    "m00144_ko_abunds.columns = ['Sample', 'KO', 'Abundance']\n",
    "m00144_ko_abunds['median titer'] = [meta_v5.loc[sample, 'median_mmNorm'] for sample in m00144_ko_abunds['Sample'].values]\n",
    "g = sns.FacetGrid(m00144_ko_abunds, col=\"KO\", col_wrap=5, height=2, sharex=False)\n",
    "_ = g.map(sns.scatterplot, \"Abundance\", \"median titer\")\n",
    "g"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "84247857-451d-4472-b4a7-4896fe7ab09a",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/872333751.py:1: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  v5_correlations.loc[set(v5_correlations.index) & modules['M00866']].sort_values('p_value')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>0.498037</td>\n",
       "      <td>0.000678</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02527</th>\n",
       "      <td>0.418303</td>\n",
       "      <td>0.005248</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00912</th>\n",
       "      <td>0.397916</td>\n",
       "      <td>0.008229</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03269</th>\n",
       "      <td>0.372244</td>\n",
       "      <td>0.013968</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00677</th>\n",
       "      <td>0.368771</td>\n",
       "      <td>0.014958</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00748</th>\n",
       "      <td>0.360163</td>\n",
       "      <td>0.017674</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02536</th>\n",
       "      <td>0.331773</td>\n",
       "      <td>0.029747</td>\n",
       "      <td>0.526796</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K16363</th>\n",
       "      <td>0.224212</td>\n",
       "      <td>0.148344</td>\n",
       "      <td>0.637504</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09949</th>\n",
       "      <td>0.186440</td>\n",
       "      <td>0.231278</td>\n",
       "      <td>0.708491</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02535</th>\n",
       "      <td>-0.055270</td>\n",
       "      <td>0.724822</td>\n",
       "      <td>0.872395</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K02517  0.498037  0.000678  0.517858\n",
       "K02527  0.418303  0.005248  0.517858\n",
       "K00912  0.397916  0.008229  0.517858\n",
       "K03269  0.372244  0.013968  0.517858\n",
       "K00677  0.368771  0.014958  0.517858\n",
       "K00748  0.360163  0.017674  0.517858\n",
       "K02536  0.331773  0.029747  0.526796\n",
       "K16363  0.224212  0.148344  0.637504\n",
       "K09949  0.186440  0.231278  0.708491\n",
       "K02535 -0.055270  0.724822  0.872395"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v5_correlations.loc[set(v5_correlations.index) & modules['M00866']].sort_values('p_value')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d3ec6687-2af8-44d0-a538-fdfc7d5cc9f2",
   "metadata": {},
   "source": [
    "LPS, LPS and oxidative phosphorlyation? Is this hope?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b0608220-b032-4551-a312-4c30bd729226",
   "metadata": {},
   "source": [
    "### 4 months"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "2c46b104-5035-42ea-9c7a-a14cad62805c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(4386, 45)\n"
     ]
    }
   ],
   "source": [
    "ko_abunds_v6 = ko_abunds[meta_v6.index]\n",
    "ko_abunds_v6 = ko_abunds_v6.loc[(ko_abunds_v6 > 0).sum(axis=1) > ko_abunds_v6.shape[1]*.2]\n",
    "ko_abunds_v6 = ko_abunds_v6.loc[ko_abunds_v6.var(axis=1) > 1e-10] # variance filter\n",
    "print(ko_abunds_v6.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "0f6db620-22e5-499e-98e2-86bd62f37a1a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K19129</th>\n",
       "      <td>0.396384</td>\n",
       "      <td>0.007026</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K12990</th>\n",
       "      <td>0.393856</td>\n",
       "      <td>0.007431</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K08998</th>\n",
       "      <td>0.371949</td>\n",
       "      <td>0.011873</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K20510</th>\n",
       "      <td>0.369541</td>\n",
       "      <td>0.012478</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K01430</th>\n",
       "      <td>0.364692</td>\n",
       "      <td>0.013775</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K19129  0.396384  0.007026  0.999657\n",
       "K12990  0.393856  0.007431  0.999657\n",
       "K08998  0.371949  0.011873  0.999657\n",
       "K20510  0.369541  0.012478  0.999657\n",
       "K01430  0.364692  0.013775  0.999657"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v6_correlations = ko_abunds_v6.transpose().apply(spearmanr, b=meta_v6['median_mmNorm']).transpose()\n",
    "v6_correlations.columns = ['rho', 'p_value']\n",
    "v6_correlations['p_adj'] = p_adjust(v6_correlations['p_value'])\n",
    "v6_correlations = v6_correlations.sort_values('p_value')\n",
    "v6_correlations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "6e9a9b8f-7609-41ef-bad4-1e55d42dec59",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "31\n"
     ]
    }
   ],
   "source": [
    "print(len(v6_correlations.query('p_value < .05')))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "276a4a87-ccbf-421a-a190-4983deedd88e",
   "metadata": {},
   "source": [
    "Many fewer significant results than at 2 months but we will still look for enrichment."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "bdae7e95-7a23-4196-98d5-a5fab527253e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>module_size</th>\n",
       "      <th>in_in</th>\n",
       "      <th>in_out</th>\n",
       "      <th>out_in</th>\n",
       "      <th>out_out</th>\n",
       "      <th>odds_ratio</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>module</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>M00802</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>30</td>\n",
       "      <td>4</td>\n",
       "      <td>2200</td>\n",
       "      <td>18.333333</td>\n",
       "      <td>0.067513</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00568</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>30</td>\n",
       "      <td>4</td>\n",
       "      <td>2200</td>\n",
       "      <td>18.333333</td>\n",
       "      <td>0.067513</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00649</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>30</td>\n",
       "      <td>4</td>\n",
       "      <td>2200</td>\n",
       "      <td>18.333333</td>\n",
       "      <td>0.067513</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00122</th>\n",
       "      <td>10</td>\n",
       "      <td>1</td>\n",
       "      <td>30</td>\n",
       "      <td>9</td>\n",
       "      <td>2195</td>\n",
       "      <td>8.129630</td>\n",
       "      <td>0.130605</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00001</th>\n",
       "      <td>30</td>\n",
       "      <td>0</td>\n",
       "      <td>31</td>\n",
       "      <td>30</td>\n",
       "      <td>2174</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        module_size  in_in  in_out  out_in  out_out  odds_ratio   p_value  \\\n",
       "module                                                                      \n",
       "M00802            5      1      30       4     2200   18.333333  0.067513   \n",
       "M00568            5      1      30       4     2200   18.333333  0.067513   \n",
       "M00649            5      1      30       4     2200   18.333333  0.067513   \n",
       "M00122           10      1      30       9     2195    8.129630  0.130605   \n",
       "M00001           30      0      31      30     2174    0.000000  1.000000   \n",
       "\n",
       "        p_adj  \n",
       "module         \n",
       "M00802    1.0  \n",
       "M00568    1.0  \n",
       "M00649    1.0  \n",
       "M00122    1.0  \n",
       "M00001    1.0  "
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v6_sig_kos = set(v6_correlations.query('p_value < .05').index)\n",
    "v6_enrichment = measure_enrichment(v6_sig_kos, modules, all_module_kos)\n",
    "v6_enrichment.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "883f352a-6042-4e6d-8659-e77b1fe63757",
   "metadata": {},
   "source": [
    "We find nothing though."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "66a0950e-aa69-4e2d-b69c-766d160f52ab",
   "metadata": {},
   "source": [
    "### 6 months"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "b305de69-3eb5-4aa6-b67e-bf98d8be74a1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(4330, 50)\n"
     ]
    }
   ],
   "source": [
    "ko_abunds_v7 = ko_abunds[meta_v7.index]\n",
    "ko_abunds_v7 = ko_abunds_v7.loc[(ko_abunds_v7 > 0).sum(axis=1) > ko_abunds_v7.shape[1]*.2]\n",
    "ko_abunds_v7 = ko_abunds_v7.loc[ko_abunds_v7.var(axis=1) > 1e-10] # variance filter\n",
    "print(ko_abunds_v7.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "de490f0e-9c64-4836-97cf-873bfc92e743",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K07746</th>\n",
       "      <td>-0.400118</td>\n",
       "      <td>0.003989</td>\n",
       "      <td>0.967379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K01129</th>\n",
       "      <td>0.397176</td>\n",
       "      <td>0.004291</td>\n",
       "      <td>0.967379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02968</th>\n",
       "      <td>0.384835</td>\n",
       "      <td>0.005789</td>\n",
       "      <td>0.967379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K11752</th>\n",
       "      <td>0.363850</td>\n",
       "      <td>0.009392</td>\n",
       "      <td>0.967379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K06994</th>\n",
       "      <td>-0.358471</td>\n",
       "      <td>0.010581</td>\n",
       "      <td>0.967379</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K07746 -0.400118  0.003989  0.967379\n",
       "K01129  0.397176  0.004291  0.967379\n",
       "K02968  0.384835  0.005789  0.967379\n",
       "K11752  0.363850  0.009392  0.967379\n",
       "K06994 -0.358471  0.010581  0.967379"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v7_correlations = ko_abunds_v7.transpose().apply(spearmanr, b=meta_v7['median_mmNorm']).transpose()\n",
    "v7_correlations.columns = ['rho', 'p_value']\n",
    "v7_correlations['p_adj'] = p_adjust(v7_correlations['p_value'])\n",
    "v7_correlations = v7_correlations.sort_values('p_value')\n",
    "v7_correlations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "8318e18d-2169-4674-95dc-6fb16507743f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "48\n"
     ]
    }
   ],
   "source": [
    "print(len(v7_correlations.query('p_value < .05')))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2f37af16-866f-4bd6-a7aa-8fe1124743c8",
   "metadata": {},
   "source": [
    "Many fewer significant results than at 2 months but we will still look for enrichment."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "6034c751-ffbd-40d3-b1f2-49b161414f20",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>module_size</th>\n",
       "      <th>in_in</th>\n",
       "      <th>in_out</th>\n",
       "      <th>out_in</th>\n",
       "      <th>out_out</th>\n",
       "      <th>odds_ratio</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>module</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>M00125</th>\n",
       "      <td>17</td>\n",
       "      <td>3</td>\n",
       "      <td>45</td>\n",
       "      <td>14</td>\n",
       "      <td>2189</td>\n",
       "      <td>10.423810</td>\n",
       "      <td>0.005018</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00911</th>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "      <td>46</td>\n",
       "      <td>6</td>\n",
       "      <td>2197</td>\n",
       "      <td>15.920290</td>\n",
       "      <td>0.011489</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00914</th>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "      <td>47</td>\n",
       "      <td>6</td>\n",
       "      <td>2197</td>\n",
       "      <td>7.790780</td>\n",
       "      <td>0.140225</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00120</th>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "      <td>47</td>\n",
       "      <td>11</td>\n",
       "      <td>2192</td>\n",
       "      <td>4.239845</td>\n",
       "      <td>0.228405</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00083</th>\n",
       "      <td>14</td>\n",
       "      <td>1</td>\n",
       "      <td>47</td>\n",
       "      <td>13</td>\n",
       "      <td>2190</td>\n",
       "      <td>3.584288</td>\n",
       "      <td>0.261140</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        module_size  in_in  in_out  out_in  out_out  odds_ratio   p_value  \\\n",
       "module                                                                      \n",
       "M00125           17      3      45      14     2189   10.423810  0.005018   \n",
       "M00911            8      2      46       6     2197   15.920290  0.011489   \n",
       "M00914            7      1      47       6     2197    7.790780  0.140225   \n",
       "M00120           12      1      47      11     2192    4.239845  0.228405   \n",
       "M00083           14      1      47      13     2190    3.584288  0.261140   \n",
       "\n",
       "        p_adj  \n",
       "module         \n",
       "M00125    1.0  \n",
       "M00911    1.0  \n",
       "M00914    1.0  \n",
       "M00120    1.0  \n",
       "M00083    1.0  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v7_sig_kos = set(v7_correlations.query('p_value < .05').index)\n",
    "v7_enrichment = measure_enrichment(v7_sig_kos, modules, all_module_kos)\n",
    "v7_enrichment.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "504898c7-3503-4f1f-96ca-ad1c1bb06862",
   "metadata": {},
   "source": [
    "We find nothing though."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d0e97245-ecdb-40dc-848c-0196d057355c",
   "metadata": {},
   "source": [
    "### 1 year"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "104b362e-a645-42eb-8e28-9f60ff7f78f8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(4259, 42)\n"
     ]
    }
   ],
   "source": [
    "ko_abunds_v9 = ko_abunds[meta_v9.index]\n",
    "ko_abunds_v9 = ko_abunds_v9.loc[(ko_abunds_v9 > 0).sum(axis=1) > ko_abunds_v9.shape[1]*.2]\n",
    "ko_abunds_v9 = ko_abunds_v9.loc[ko_abunds_v9.var(axis=1) > 1e-10] # variance filter\n",
    "print(ko_abunds_v9.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "92e84f61-687b-42cd-a924-3242ef442a79",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K03183</th>\n",
       "      <td>-0.507819</td>\n",
       "      <td>0.000597</td>\n",
       "      <td>0.294533</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K15599</th>\n",
       "      <td>-0.505293</td>\n",
       "      <td>0.000642</td>\n",
       "      <td>0.294533</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K18139</th>\n",
       "      <td>-0.500041</td>\n",
       "      <td>0.000746</td>\n",
       "      <td>0.294533</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00817</th>\n",
       "      <td>-0.495989</td>\n",
       "      <td>0.000837</td>\n",
       "      <td>0.294533</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00848</th>\n",
       "      <td>-0.494044</td>\n",
       "      <td>0.000884</td>\n",
       "      <td>0.294533</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K03183 -0.507819  0.000597  0.294533\n",
       "K15599 -0.505293  0.000642  0.294533\n",
       "K18139 -0.500041  0.000746  0.294533\n",
       "K00817 -0.495989  0.000837  0.294533\n",
       "K00848 -0.494044  0.000884  0.294533"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v9_correlations = ko_abunds_v9.transpose().apply(spearmanr, b=meta_v9['median_mmNorm']).transpose()\n",
    "v9_correlations.columns = ['rho', 'p_value']\n",
    "v9_correlations['p_adj'] = p_adjust(v9_correlations['p_value'])\n",
    "v9_correlations = v9_correlations.sort_values('p_value')\n",
    "v9_correlations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "4ddab8ef-9988-428c-a19f-416b7029f9ed",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "579\n"
     ]
    }
   ],
   "source": [
    "print(len(v9_correlations.query('p_value < .05')))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7a39eff0-d20a-4ad2-97a6-b2641c117cad",
   "metadata": {},
   "source": [
    "At one year there is a large number of significant KOs. An alarmingly large number."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "578a9c37-dbc3-40be-a00c-09c13281c857",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>module_size</th>\n",
       "      <th>in_in</th>\n",
       "      <th>in_out</th>\n",
       "      <th>out_in</th>\n",
       "      <th>out_out</th>\n",
       "      <th>odds_ratio</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>module</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>M00570</th>\n",
       "      <td>8</td>\n",
       "      <td>5</td>\n",
       "      <td>574</td>\n",
       "      <td>3</td>\n",
       "      <td>2075</td>\n",
       "      <td>6.024971</td>\n",
       "      <td>0.015008</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00019</th>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>575</td>\n",
       "      <td>2</td>\n",
       "      <td>2076</td>\n",
       "      <td>7.220870</td>\n",
       "      <td>0.022966</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00124</th>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>575</td>\n",
       "      <td>2</td>\n",
       "      <td>2076</td>\n",
       "      <td>7.220870</td>\n",
       "      <td>0.022966</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00060</th>\n",
       "      <td>10</td>\n",
       "      <td>5</td>\n",
       "      <td>574</td>\n",
       "      <td>5</td>\n",
       "      <td>2073</td>\n",
       "      <td>3.611498</td>\n",
       "      <td>0.045815</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00866</th>\n",
       "      <td>11</td>\n",
       "      <td>5</td>\n",
       "      <td>574</td>\n",
       "      <td>6</td>\n",
       "      <td>2072</td>\n",
       "      <td>3.008130</td>\n",
       "      <td>0.069340</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        module_size  in_in  in_out  out_in  out_out  odds_ratio   p_value  \\\n",
       "module                                                                      \n",
       "M00570            8      5     574       3     2075    6.024971  0.015008   \n",
       "M00019            6      4     575       2     2076    7.220870  0.022966   \n",
       "M00124            6      4     575       2     2076    7.220870  0.022966   \n",
       "M00060           10      5     574       5     2073    3.611498  0.045815   \n",
       "M00866           11      5     574       6     2072    3.008130  0.069340   \n",
       "\n",
       "        p_adj  \n",
       "module         \n",
       "M00570    1.0  \n",
       "M00019    1.0  \n",
       "M00124    1.0  \n",
       "M00060    1.0  \n",
       "M00866    1.0  "
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v9_sig_kos = set(v9_correlations.query('p_value < .05').index)\n",
    "v9_enrichment = measure_enrichment(v9_sig_kos, modules, all_module_kos)\n",
    "v9_enrichment.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "351ecbb8-4911-4b0a-81ea-6ed84d729841",
   "metadata": {},
   "source": [
    "But after testing for enrichment none is found."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "147725a0-c628-4f2a-a6a5-1a9957883a93",
   "metadata": {},
   "source": [
    "### Following significant 2 month results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "150d96f2-11a4-4814-8993-363f778a7e66",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/2060652507.py:1: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  m00060_ko_cross_correlations_v5 = v5_correlations.loc[modules['M00060']].sort_values('p_value')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>0.498037</td>\n",
       "      <td>0.000678</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02527</th>\n",
       "      <td>0.418303</td>\n",
       "      <td>0.005248</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00912</th>\n",
       "      <td>0.397916</td>\n",
       "      <td>0.008229</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03269</th>\n",
       "      <td>0.372244</td>\n",
       "      <td>0.013968</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00677</th>\n",
       "      <td>0.368771</td>\n",
       "      <td>0.014958</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00748</th>\n",
       "      <td>0.360163</td>\n",
       "      <td>0.017674</td>\n",
       "      <td>0.517858</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02536</th>\n",
       "      <td>0.331773</td>\n",
       "      <td>0.029747</td>\n",
       "      <td>0.526796</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09949</th>\n",
       "      <td>0.186440</td>\n",
       "      <td>0.231278</td>\n",
       "      <td>0.708491</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02560</th>\n",
       "      <td>-0.119450</td>\n",
       "      <td>0.445496</td>\n",
       "      <td>0.809950</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02535</th>\n",
       "      <td>-0.055270</td>\n",
       "      <td>0.724822</td>\n",
       "      <td>0.872395</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K02517  0.498037  0.000678  0.517858\n",
       "K02527  0.418303  0.005248  0.517858\n",
       "K00912  0.397916  0.008229  0.517858\n",
       "K03269  0.372244  0.013968  0.517858\n",
       "K00677  0.368771  0.014958  0.517858\n",
       "K00748  0.360163  0.017674  0.517858\n",
       "K02536  0.331773  0.029747  0.526796\n",
       "K09949  0.186440  0.231278  0.708491\n",
       "K02560 -0.119450  0.445496  0.809950\n",
       "K02535 -0.055270  0.724822  0.872395"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m00060_ko_cross_correlations_v5 = v5_correlations.loc[modules['M00060']].sort_values('p_value')\n",
    "m00060_ko_cross_correlations_v5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "0a01ee8d-95de-4723-a338-e376c47d98c7",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/2514075304.py:1: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  m00060_ko_cross_correlations_v6 = v6_correlations.loc[modules['M00060']].sort_values('p_value')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K00912</th>\n",
       "      <td>0.285846</td>\n",
       "      <td>0.056978</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>0.206067</td>\n",
       "      <td>0.174441</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00677</th>\n",
       "      <td>0.178201</td>\n",
       "      <td>0.241530</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02527</th>\n",
       "      <td>0.171745</td>\n",
       "      <td>0.259284</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00748</th>\n",
       "      <td>0.141045</td>\n",
       "      <td>0.355399</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02535</th>\n",
       "      <td>-0.081228</td>\n",
       "      <td>0.595808</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03269</th>\n",
       "      <td>0.073850</td>\n",
       "      <td>0.629723</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02560</th>\n",
       "      <td>-0.062057</td>\n",
       "      <td>0.685500</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09949</th>\n",
       "      <td>-0.023941</td>\n",
       "      <td>0.875949</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02536</th>\n",
       "      <td>0.012846</td>\n",
       "      <td>0.933252</td>\n",
       "      <td>0.999657</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K00912  0.285846  0.056978  0.999657\n",
       "K02517  0.206067  0.174441  0.999657\n",
       "K00677  0.178201  0.241530  0.999657\n",
       "K02527  0.171745  0.259284  0.999657\n",
       "K00748  0.141045  0.355399  0.999657\n",
       "K02535 -0.081228  0.595808  0.999657\n",
       "K03269  0.073850  0.629723  0.999657\n",
       "K02560 -0.062057  0.685500  0.999657\n",
       "K09949 -0.023941  0.875949  0.999657\n",
       "K02536  0.012846  0.933252  0.999657"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m00060_ko_cross_correlations_v6 = v6_correlations.loc[modules['M00060']].sort_values('p_value')\n",
    "m00060_ko_cross_correlations_v6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "2605aad5-1843-45f8-8476-99a9f3139bbf",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/524265188.py:1: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  m00060_ko_cross_correlations_v7 = v7_correlations.loc[modules['M00060']].sort_values('p_value')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>0.174218</td>\n",
       "      <td>0.226268</td>\n",
       "      <td>0.967379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02527</th>\n",
       "      <td>0.118226</td>\n",
       "      <td>0.413520</td>\n",
       "      <td>0.967379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00912</th>\n",
       "      <td>0.115681</td>\n",
       "      <td>0.423716</td>\n",
       "      <td>0.967379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02560</th>\n",
       "      <td>-0.106221</td>\n",
       "      <td>0.462839</td>\n",
       "      <td>0.967379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00677</th>\n",
       "      <td>0.104876</td>\n",
       "      <td>0.468554</td>\n",
       "      <td>0.967379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00748</th>\n",
       "      <td>0.090614</td>\n",
       "      <td>0.531430</td>\n",
       "      <td>0.967379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02536</th>\n",
       "      <td>0.081731</td>\n",
       "      <td>0.572583</td>\n",
       "      <td>0.967379</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02535</th>\n",
       "      <td>-0.038224</td>\n",
       "      <td>0.792130</td>\n",
       "      <td>0.977348</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03269</th>\n",
       "      <td>0.030685</td>\n",
       "      <td>0.832468</td>\n",
       "      <td>0.985153</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09949</th>\n",
       "      <td>0.027010</td>\n",
       "      <td>0.852293</td>\n",
       "      <td>0.987232</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K02517  0.174218  0.226268  0.967379\n",
       "K02527  0.118226  0.413520  0.967379\n",
       "K00912  0.115681  0.423716  0.967379\n",
       "K02560 -0.106221  0.462839  0.967379\n",
       "K00677  0.104876  0.468554  0.967379\n",
       "K00748  0.090614  0.531430  0.967379\n",
       "K02536  0.081731  0.572583  0.967379\n",
       "K02535 -0.038224  0.792130  0.977348\n",
       "K03269  0.030685  0.832468  0.985153\n",
       "K09949  0.027010  0.852293  0.987232"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m00060_ko_cross_correlations_v7 = v7_correlations.loc[modules['M00060']].sort_values('p_value')\n",
    "m00060_ko_cross_correlations_v7"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "4c2c588c-8aef-41c8-a9cd-cdbec47aed78",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/56639734.py:1: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  m00060_ko_cross_correlations_v9 = v9_correlations.loc[modules['M00060']].sort_values('p_value')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K00677</th>\n",
       "      <td>-0.466818</td>\n",
       "      <td>0.001830</td>\n",
       "      <td>0.294533</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02527</th>\n",
       "      <td>-0.402317</td>\n",
       "      <td>0.008259</td>\n",
       "      <td>0.310114</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02536</th>\n",
       "      <td>-0.361802</td>\n",
       "      <td>0.018554</td>\n",
       "      <td>0.317445</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>-0.358075</td>\n",
       "      <td>0.019893</td>\n",
       "      <td>0.317445</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00748</th>\n",
       "      <td>-0.339276</td>\n",
       "      <td>0.027945</td>\n",
       "      <td>0.319563</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00912</th>\n",
       "      <td>-0.277044</td>\n",
       "      <td>0.075697</td>\n",
       "      <td>0.422424</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03269</th>\n",
       "      <td>-0.260028</td>\n",
       "      <td>0.096300</td>\n",
       "      <td>0.457835</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02535</th>\n",
       "      <td>-0.094080</td>\n",
       "      <td>0.553430</td>\n",
       "      <td>0.893415</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09949</th>\n",
       "      <td>-0.092088</td>\n",
       "      <td>0.561898</td>\n",
       "      <td>0.896195</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02560</th>\n",
       "      <td>-0.020517</td>\n",
       "      <td>0.897382</td>\n",
       "      <td>0.967159</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K00677 -0.466818  0.001830  0.294533\n",
       "K02527 -0.402317  0.008259  0.310114\n",
       "K02536 -0.361802  0.018554  0.317445\n",
       "K02517 -0.358075  0.019893  0.317445\n",
       "K00748 -0.339276  0.027945  0.319563\n",
       "K00912 -0.277044  0.075697  0.422424\n",
       "K03269 -0.260028  0.096300  0.457835\n",
       "K02535 -0.094080  0.553430  0.893415\n",
       "K09949 -0.092088  0.561898  0.896195\n",
       "K02560 -0.020517  0.897382  0.967159"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m00060_ko_cross_correlations_v9 = v9_correlations.loc[modules['M00060']].sort_values('p_value')\n",
    "m00060_ko_cross_correlations_v9"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "77060969-69ac-4578-b746-d17d83df18e9",
   "metadata": {},
   "source": [
    "Significance pretty much completely disappears after 2 months. Man this seems like it shouldn't be this clean."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "005f0da1-a8c2-4fb1-8ff8-f01aa1a3d251",
   "metadata": {},
   "source": [
    "## Break down titers into DTapHib and PCV\n",
    "\n",
    "We will go back through and do the same correlations but splitting median titer into median DTAPHib titer and median PCV titer."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5a8b9831-1608-4fa8-9063-0550f0666b96",
   "metadata": {},
   "source": [
    "### 2 months"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "0691ee96-f62f-4b9c-b1a1-5f12d6eff5a4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K01805</th>\n",
       "      <td>0.529999</td>\n",
       "      <td>0.000257</td>\n",
       "      <td>0.176412</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K08169</th>\n",
       "      <td>0.526069</td>\n",
       "      <td>0.000291</td>\n",
       "      <td>0.176412</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K05784</th>\n",
       "      <td>0.518511</td>\n",
       "      <td>0.000368</td>\n",
       "      <td>0.176412</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00341</th>\n",
       "      <td>0.511864</td>\n",
       "      <td>0.000451</td>\n",
       "      <td>0.176412</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02401</th>\n",
       "      <td>-0.510976</td>\n",
       "      <td>0.000463</td>\n",
       "      <td>0.176412</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K01805  0.529999  0.000257  0.176412\n",
       "K08169  0.526069  0.000291  0.176412\n",
       "K05784  0.518511  0.000368  0.176412\n",
       "K00341  0.511864  0.000451  0.176412\n",
       "K02401 -0.510976  0.000463  0.176412"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v5_DTAPHib_correlations = ko_abunds_v5.transpose().apply(spearmanr, b=meta_v5['median_mmNorm_DTAPHib']).transpose()\n",
    "v5_DTAPHib_correlations.columns = ['rho', 'p_value']\n",
    "v5_DTAPHib_correlations['p_adj'] = p_adjust(v5_DTAPHib_correlations['p_value'])\n",
    "v5_DTAPHib_correlations = v5_DTAPHib_correlations.sort_values('p_value')\n",
    "v5_DTAPHib_correlations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "1096ba26-19f1-4bb2-89be-6b18ea3e9ce2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "585\n"
     ]
    }
   ],
   "source": [
    "print(len(v5_DTAPHib_correlations.query('p_value < .05')))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "4dc8aa04-9b3a-4b56-b4bb-7b6a89d99bd7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>module_size</th>\n",
       "      <th>in_in</th>\n",
       "      <th>in_out</th>\n",
       "      <th>out_in</th>\n",
       "      <th>out_out</th>\n",
       "      <th>odds_ratio</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>module</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>M00144</th>\n",
       "      <td>16</td>\n",
       "      <td>9</td>\n",
       "      <td>576</td>\n",
       "      <td>7</td>\n",
       "      <td>2107</td>\n",
       "      <td>4.703125</td>\n",
       "      <td>0.002600</td>\n",
       "      <td>0.79044</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00866</th>\n",
       "      <td>11</td>\n",
       "      <td>6</td>\n",
       "      <td>579</td>\n",
       "      <td>5</td>\n",
       "      <td>2109</td>\n",
       "      <td>4.370984</td>\n",
       "      <td>0.017131</td>\n",
       "      <td>1.00000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00060</th>\n",
       "      <td>10</td>\n",
       "      <td>5</td>\n",
       "      <td>580</td>\n",
       "      <td>5</td>\n",
       "      <td>2109</td>\n",
       "      <td>3.636207</td>\n",
       "      <td>0.044859</td>\n",
       "      <td>1.00000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00913</th>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>582</td>\n",
       "      <td>2</td>\n",
       "      <td>2112</td>\n",
       "      <td>5.443299</td>\n",
       "      <td>0.071409</td>\n",
       "      <td>1.00000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00045</th>\n",
       "      <td>8</td>\n",
       "      <td>4</td>\n",
       "      <td>581</td>\n",
       "      <td>4</td>\n",
       "      <td>2110</td>\n",
       "      <td>3.631670</td>\n",
       "      <td>0.072650</td>\n",
       "      <td>1.00000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        module_size  in_in  in_out  out_in  out_out  odds_ratio   p_value  \\\n",
       "module                                                                      \n",
       "M00144           16      9     576       7     2107    4.703125  0.002600   \n",
       "M00866           11      6     579       5     2109    4.370984  0.017131   \n",
       "M00060           10      5     580       5     2109    3.636207  0.044859   \n",
       "M00913            5      3     582       2     2112    5.443299  0.071409   \n",
       "M00045            8      4     581       4     2110    3.631670  0.072650   \n",
       "\n",
       "          p_adj  \n",
       "module           \n",
       "M00144  0.79044  \n",
       "M00866  1.00000  \n",
       "M00060  1.00000  \n",
       "M00913  1.00000  \n",
       "M00045  1.00000  "
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v5_DTAPHib_sig_kos = set(v5_DTAPHib_correlations.query('p_value < .05').index)\n",
    "v5_DTAPHib_enrichment = measure_enrichment(v5_DTAPHib_sig_kos, modules, all_module_kos)\n",
    "v5_DTAPHib_enrichment.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6c8701c0-febb-46fc-9c51-f640e231f855",
   "metadata": {},
   "source": [
    "Nothing is significantly associated with DTAPHib at 2 months."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "1ce08a46-b6b5-4c5a-9173-f4124ac2972b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>0.505253</td>\n",
       "      <td>0.000883</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K05784</th>\n",
       "      <td>0.486621</td>\n",
       "      <td>0.001453</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K08178</th>\n",
       "      <td>0.476674</td>\n",
       "      <td>0.001873</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K21394</th>\n",
       "      <td>-0.473386</td>\n",
       "      <td>0.002034</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K10026</th>\n",
       "      <td>0.472420</td>\n",
       "      <td>0.002084</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K02517  0.505253  0.000883  0.794428\n",
       "K05784  0.486621  0.001453  0.794428\n",
       "K08178  0.476674  0.001873  0.794428\n",
       "K21394 -0.473386  0.002034  0.794428\n",
       "K10026  0.472420  0.002084  0.794428"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta_PCV_v5 = meta_PCV.query(\"VisitCode == 'V5'\")\n",
    "ko_abunds_PCV_v5 = ko_abunds_v5[meta_PCV_v5.index]\n",
    "ko_abunds_PCV_v5 = ko_abunds_PCV_v5.loc[(ko_abunds_PCV_v5 > 0).sum(axis=1) > ko_abunds_PCV_v5.shape[1]*.2]\n",
    "v5_PCV_correlations = ko_abunds_PCV_v5.transpose().apply(spearmanr, b=meta_PCV_v5['median_mmNorm_PCV']).transpose()\n",
    "v5_PCV_correlations.columns = ['rho', 'p_value']\n",
    "v5_PCV_correlations['p_adj'] = p_adjust(v5_PCV_correlations['p_value'])\n",
    "v5_PCV_correlations = v5_PCV_correlations.sort_values('p_value')\n",
    "v5_PCV_correlations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "2c324175-a730-4fdd-9af8-a6ba72c37942",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "262\n"
     ]
    }
   ],
   "source": [
    "print(len(v5_PCV_correlations.query('p_value < .05')))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "602f91a3-166d-49d0-bf01-72e242cb69ab",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>module_size</th>\n",
       "      <th>in_in</th>\n",
       "      <th>in_out</th>\n",
       "      <th>out_in</th>\n",
       "      <th>out_out</th>\n",
       "      <th>odds_ratio</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>module</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>M00060</th>\n",
       "      <td>10</td>\n",
       "      <td>7</td>\n",
       "      <td>255</td>\n",
       "      <td>3</td>\n",
       "      <td>2153</td>\n",
       "      <td>19.700654</td>\n",
       "      <td>0.000015</td>\n",
       "      <td>0.004449</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00866</th>\n",
       "      <td>11</td>\n",
       "      <td>7</td>\n",
       "      <td>255</td>\n",
       "      <td>4</td>\n",
       "      <td>2152</td>\n",
       "      <td>14.768627</td>\n",
       "      <td>0.000037</td>\n",
       "      <td>0.005554</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00144</th>\n",
       "      <td>16</td>\n",
       "      <td>7</td>\n",
       "      <td>255</td>\n",
       "      <td>9</td>\n",
       "      <td>2147</td>\n",
       "      <td>6.548584</td>\n",
       "      <td>0.000783</td>\n",
       "      <td>0.079307</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00045</th>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>259</td>\n",
       "      <td>5</td>\n",
       "      <td>2151</td>\n",
       "      <td>4.983012</td>\n",
       "      <td>0.046593</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00432</th>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "      <td>260</td>\n",
       "      <td>3</td>\n",
       "      <td>2153</td>\n",
       "      <td>5.520513</td>\n",
       "      <td>0.093791</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        module_size  in_in  in_out  out_in  out_out  odds_ratio   p_value  \\\n",
       "module                                                                      \n",
       "M00060           10      7     255       3     2153   19.700654  0.000015   \n",
       "M00866           11      7     255       4     2152   14.768627  0.000037   \n",
       "M00144           16      7     255       9     2147    6.548584  0.000783   \n",
       "M00045            8      3     259       5     2151    4.983012  0.046593   \n",
       "M00432            5      2     260       3     2153    5.520513  0.093791   \n",
       "\n",
       "           p_adj  \n",
       "module            \n",
       "M00060  0.004449  \n",
       "M00866  0.005554  \n",
       "M00144  0.079307  \n",
       "M00045  1.000000  \n",
       "M00432  1.000000  "
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v5_PCV_sig_kos = set(v5_PCV_correlations.query('p_value < .05').index)\n",
    "v5_PCV_enrichment = measure_enrichment(v5_PCV_sig_kos, modules, all_module_kos)\n",
    "v5_PCV_enrichment.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dcb0319c-5c1a-44a5-ab8c-736d917ad66e",
   "metadata": {},
   "source": [
    "The three modeuls identified previously are associatd with PCV and not DTAPHib at 2 months."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "23221d94-eacf-4d75-bc71-29284f01eeda",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/3837576614.py:1: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  m00060_ko_correlations = v5_PCV_correlations.loc[modules['M00060']].sort_values('p_value')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>0.505253</td>\n",
       "      <td>0.000883</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02527</th>\n",
       "      <td>0.373358</td>\n",
       "      <td>0.017646</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00912</th>\n",
       "      <td>0.364353</td>\n",
       "      <td>0.020812</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00748</th>\n",
       "      <td>0.340901</td>\n",
       "      <td>0.031349</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02536</th>\n",
       "      <td>0.335084</td>\n",
       "      <td>0.034550</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03269</th>\n",
       "      <td>0.332270</td>\n",
       "      <td>0.036193</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00677</th>\n",
       "      <td>0.313884</td>\n",
       "      <td>0.048565</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09949</th>\n",
       "      <td>0.174045</td>\n",
       "      <td>0.282787</td>\n",
       "      <td>0.911663</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02560</th>\n",
       "      <td>-0.035647</td>\n",
       "      <td>0.827138</td>\n",
       "      <td>0.999083</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02535</th>\n",
       "      <td>0.026829</td>\n",
       "      <td>0.869470</td>\n",
       "      <td>0.999083</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K02517  0.505253  0.000883  0.794428\n",
       "K02527  0.373358  0.017646  0.794428\n",
       "K00912  0.364353  0.020812  0.794428\n",
       "K00748  0.340901  0.031349  0.794428\n",
       "K02536  0.335084  0.034550  0.794428\n",
       "K03269  0.332270  0.036193  0.794428\n",
       "K00677  0.313884  0.048565  0.794428\n",
       "K09949  0.174045  0.282787  0.911663\n",
       "K02560 -0.035647  0.827138  0.999083\n",
       "K02535  0.026829  0.869470  0.999083"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m00060_ko_correlations = v5_PCV_correlations.loc[modules['M00060']].sort_values('p_value')\n",
    "m00060_ko_correlations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "78310260-ae82-43a0-822a-3737b18fe03a",
   "metadata": {},
   "outputs": [],
   "source": [
    "m00060_ko_abunds = ko_abunds_PCV_v5.loc[m00060_ko_correlations.index].unstack().reset_index()\n",
    "m00060_ko_abunds.columns = ['Sample', 'KO', 'Abundance']\n",
    "m00060_ko_abunds['PCV median titer'] = [meta_PCV_v5.loc[sample, 'median_mmNorm_PCV'] for sample in m00060_ko_abunds['Sample'].values]\n",
    "g = sns.FacetGrid(m00060_ko_abunds, col=\"KO\", col_wrap=5, height=2, sharex=False)\n",
    "_ = g.map(sns.scatterplot, \"Abundance\", \"PCV median titer\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0e9d6cdb-6924-4efd-9807-107a010be107",
   "metadata": {},
   "source": [
    "The first 7 plots here are from significant KOs. Not super compelling but it is significant."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "60c86adf-8a34-43d1-88ac-d1cd96c3fe3c",
   "metadata": {},
   "source": [
    "## 4 months"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "a4c8431f-bf2c-4a5e-971b-b2a65fe9f4a6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K06941</th>\n",
       "      <td>0.475384</td>\n",
       "      <td>0.000966</td>\n",
       "      <td>0.691332</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K08364</th>\n",
       "      <td>0.424606</td>\n",
       "      <td>0.003648</td>\n",
       "      <td>0.691332</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00561</th>\n",
       "      <td>0.412968</td>\n",
       "      <td>0.004812</td>\n",
       "      <td>0.691332</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K19068</th>\n",
       "      <td>0.408188</td>\n",
       "      <td>0.005377</td>\n",
       "      <td>0.691332</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K11927</th>\n",
       "      <td>0.402902</td>\n",
       "      <td>0.006068</td>\n",
       "      <td>0.691332</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K06941  0.475384  0.000966  0.691332\n",
       "K08364  0.424606  0.003648  0.691332\n",
       "K00561  0.412968  0.004812  0.691332\n",
       "K19068  0.408188  0.005377  0.691332\n",
       "K11927  0.402902  0.006068  0.691332"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v6_DTAPHib_correlations = ko_abunds_v6.transpose().apply(spearmanr, b=meta_v6['median_mmNorm_DTAPHib']).transpose()\n",
    "v6_DTAPHib_correlations.columns = ['rho', 'p_value']\n",
    "v6_DTAPHib_correlations['p_adj'] = p_adjust(v6_DTAPHib_correlations['p_value'])\n",
    "v6_DTAPHib_correlations = v6_DTAPHib_correlations.sort_values('p_value')\n",
    "v6_DTAPHib_correlations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "bfd793e7-1660-446a-819f-8eb303710698",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>module_size</th>\n",
       "      <th>in_in</th>\n",
       "      <th>in_out</th>\n",
       "      <th>out_in</th>\n",
       "      <th>out_out</th>\n",
       "      <th>odds_ratio</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>module</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>M00060</th>\n",
       "      <td>10</td>\n",
       "      <td>2</td>\n",
       "      <td>145</td>\n",
       "      <td>8</td>\n",
       "      <td>2175</td>\n",
       "      <td>3.750000</td>\n",
       "      <td>0.127570</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00866</th>\n",
       "      <td>11</td>\n",
       "      <td>2</td>\n",
       "      <td>145</td>\n",
       "      <td>9</td>\n",
       "      <td>2174</td>\n",
       "      <td>3.331801</td>\n",
       "      <td>0.149718</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00899</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>146</td>\n",
       "      <td>4</td>\n",
       "      <td>2179</td>\n",
       "      <td>3.731164</td>\n",
       "      <td>0.278289</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00802</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>146</td>\n",
       "      <td>4</td>\n",
       "      <td>2179</td>\n",
       "      <td>3.731164</td>\n",
       "      <td>0.278289</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00118</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>146</td>\n",
       "      <td>4</td>\n",
       "      <td>2179</td>\n",
       "      <td>3.731164</td>\n",
       "      <td>0.278289</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        module_size  in_in  in_out  out_in  out_out  odds_ratio   p_value  \\\n",
       "module                                                                      \n",
       "M00060           10      2     145       8     2175    3.750000  0.127570   \n",
       "M00866           11      2     145       9     2174    3.331801  0.149718   \n",
       "M00899            5      1     146       4     2179    3.731164  0.278289   \n",
       "M00802            5      1     146       4     2179    3.731164  0.278289   \n",
       "M00118            5      1     146       4     2179    3.731164  0.278289   \n",
       "\n",
       "        p_adj  \n",
       "module         \n",
       "M00060    1.0  \n",
       "M00866    1.0  \n",
       "M00899    1.0  \n",
       "M00802    1.0  \n",
       "M00118    1.0  "
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v6_DTAPHib_sig_kos = set(v6_DTAPHib_correlations.query('p_value < .05').index)\n",
    "v6_DTAPHib_enrichment = measure_enrichment(v6_DTAPHib_sig_kos, modules, all_module_kos)\n",
    "v6_DTAPHib_enrichment.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "8bab49b6-00c1-43a0-ac0d-d173e3060c61",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K22003</th>\n",
       "      <td>0.430186</td>\n",
       "      <td>0.003986</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K07454</th>\n",
       "      <td>0.395953</td>\n",
       "      <td>0.008581</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K01430</th>\n",
       "      <td>0.395186</td>\n",
       "      <td>0.008722</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K19129</th>\n",
       "      <td>0.386808</td>\n",
       "      <td>0.010397</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K01856</th>\n",
       "      <td>0.379270</td>\n",
       "      <td>0.012133</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value  p_adj\n",
       "K22003  0.430186  0.003986    1.0\n",
       "K07454  0.395953  0.008581    1.0\n",
       "K01430  0.395186  0.008722    1.0\n",
       "K19129  0.386808  0.010397    1.0\n",
       "K01856  0.379270  0.012133    1.0"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta_PCV_v6 = meta_PCV.query(\"VisitCode == 'V6'\")\n",
    "ko_abunds_PCV_v6 = ko_abunds_v6[meta_PCV_v6.index]\n",
    "ko_abunds_PCV_v6 = ko_abunds_PCV_v6.loc[(ko_abunds_PCV_v6 > 0).sum(axis=1) > ko_abunds_PCV_v6.shape[1]*.2]\n",
    "v6_PCV_correlations = ko_abunds_PCV_v6.transpose().apply(spearmanr, b=meta_PCV_v6['median_mmNorm_PCV']).transpose()\n",
    "v6_PCV_correlations.columns = ['rho', 'p_value']\n",
    "v6_PCV_correlations['p_adj'] = p_adjust(v6_PCV_correlations['p_value'])\n",
    "v6_PCV_correlations = v6_PCV_correlations.sort_values('p_value')\n",
    "v6_PCV_correlations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "ef2c9bb4-3a74-4b7f-9616-840485cc4a0d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>module_size</th>\n",
       "      <th>in_in</th>\n",
       "      <th>in_out</th>\n",
       "      <th>out_in</th>\n",
       "      <th>out_out</th>\n",
       "      <th>odds_ratio</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>module</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>M00568</th>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "      <td>49</td>\n",
       "      <td>3</td>\n",
       "      <td>2200</td>\n",
       "      <td>29.931973</td>\n",
       "      <td>0.004806</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00802</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>50</td>\n",
       "      <td>4</td>\n",
       "      <td>2199</td>\n",
       "      <td>10.995000</td>\n",
       "      <td>0.108219</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00649</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>50</td>\n",
       "      <td>4</td>\n",
       "      <td>2199</td>\n",
       "      <td>10.995000</td>\n",
       "      <td>0.108219</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00745</th>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>50</td>\n",
       "      <td>5</td>\n",
       "      <td>2198</td>\n",
       "      <td>8.792000</td>\n",
       "      <td>0.128442</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00740</th>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>51</td>\n",
       "      <td>12</td>\n",
       "      <td>2191</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        module_size  in_in  in_out  out_in  out_out  odds_ratio   p_value  \\\n",
       "module                                                                      \n",
       "M00568            5      2      49       3     2200   29.931973  0.004806   \n",
       "M00802            5      1      50       4     2199   10.995000  0.108219   \n",
       "M00649            5      1      50       4     2199   10.995000  0.108219   \n",
       "M00745            6      1      50       5     2198    8.792000  0.128442   \n",
       "M00740           12      0      51      12     2191    0.000000  1.000000   \n",
       "\n",
       "        p_adj  \n",
       "module         \n",
       "M00568    1.0  \n",
       "M00802    1.0  \n",
       "M00649    1.0  \n",
       "M00745    1.0  \n",
       "M00740    1.0  "
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v6_PCV_sig_kos = set(v6_PCV_correlations.query('p_value < .05').index)\n",
    "v6_PCV_enrichment = measure_enrichment(v6_PCV_sig_kos, modules, all_module_kos)\n",
    "v6_PCV_enrichment.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f852d2de-e4ff-442a-8b9b-27bfce749ffa",
   "metadata": {},
   "source": [
    "Nothing significant at 4 months."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ff896259-3d19-4d86-b4ad-27230942c0c0",
   "metadata": {},
   "source": [
    "### 6 months"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "aa315037-5bfd-411a-955d-6e89b93940cf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K13285</th>\n",
       "      <td>0.428444</td>\n",
       "      <td>0.001908</td>\n",
       "      <td>0.605771</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K13287</th>\n",
       "      <td>0.411881</td>\n",
       "      <td>0.002959</td>\n",
       "      <td>0.605771</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K04058</th>\n",
       "      <td>0.391911</td>\n",
       "      <td>0.004882</td>\n",
       "      <td>0.605771</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K01485</th>\n",
       "      <td>-0.388614</td>\n",
       "      <td>0.005288</td>\n",
       "      <td>0.605771</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03762</th>\n",
       "      <td>-0.376796</td>\n",
       "      <td>0.006993</td>\n",
       "      <td>0.605771</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K13285  0.428444  0.001908  0.605771\n",
       "K13287  0.411881  0.002959  0.605771\n",
       "K04058  0.391911  0.004882  0.605771\n",
       "K01485 -0.388614  0.005288  0.605771\n",
       "K03762 -0.376796  0.006993  0.605771"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v7_DTAPHib_correlations = ko_abunds_v7.transpose().apply(spearmanr, b=meta_v7['median_mmNorm_DTAPHib']).transpose()\n",
    "v7_DTAPHib_correlations.columns = ['rho', 'p_value']\n",
    "v7_DTAPHib_correlations['p_adj'] = p_adjust(v7_DTAPHib_correlations['p_value'])\n",
    "v7_DTAPHib_correlations = v7_DTAPHib_correlations.sort_values('p_value')\n",
    "v7_DTAPHib_correlations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "1b7084af-8394-4441-a197-55a9716f1f57",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>module_size</th>\n",
       "      <th>in_in</th>\n",
       "      <th>in_out</th>\n",
       "      <th>out_in</th>\n",
       "      <th>out_out</th>\n",
       "      <th>odds_ratio</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>module</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>M00021</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>66</td>\n",
       "      <td>4</td>\n",
       "      <td>2194</td>\n",
       "      <td>8.310606</td>\n",
       "      <td>0.139524</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00880</th>\n",
       "      <td>9</td>\n",
       "      <td>1</td>\n",
       "      <td>66</td>\n",
       "      <td>8</td>\n",
       "      <td>2190</td>\n",
       "      <td>4.147727</td>\n",
       "      <td>0.237176</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00895</th>\n",
       "      <td>10</td>\n",
       "      <td>1</td>\n",
       "      <td>66</td>\n",
       "      <td>9</td>\n",
       "      <td>2189</td>\n",
       "      <td>3.685185</td>\n",
       "      <td>0.259831</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00127</th>\n",
       "      <td>11</td>\n",
       "      <td>1</td>\n",
       "      <td>66</td>\n",
       "      <td>10</td>\n",
       "      <td>2188</td>\n",
       "      <td>3.315152</td>\n",
       "      <td>0.281822</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00014</th>\n",
       "      <td>12</td>\n",
       "      <td>1</td>\n",
       "      <td>66</td>\n",
       "      <td>11</td>\n",
       "      <td>2187</td>\n",
       "      <td>3.012397</td>\n",
       "      <td>0.303170</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        module_size  in_in  in_out  out_in  out_out  odds_ratio   p_value  \\\n",
       "module                                                                      \n",
       "M00021            5      1      66       4     2194    8.310606  0.139524   \n",
       "M00880            9      1      66       8     2190    4.147727  0.237176   \n",
       "M00895           10      1      66       9     2189    3.685185  0.259831   \n",
       "M00127           11      1      66      10     2188    3.315152  0.281822   \n",
       "M00014           12      1      66      11     2187    3.012397  0.303170   \n",
       "\n",
       "        p_adj  \n",
       "module         \n",
       "M00021    1.0  \n",
       "M00880    1.0  \n",
       "M00895    1.0  \n",
       "M00127    1.0  \n",
       "M00014    1.0  "
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v7_DTAPHib_sig_kos = set(v7_DTAPHib_correlations.query('p_value < .05').index)\n",
    "v7_DTAPHib_enrichment = measure_enrichment(v7_DTAPHib_sig_kos, modules, all_module_kos)\n",
    "v7_DTAPHib_enrichment.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "3457d251-73b5-4571-8923-9514b5b6d1c5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K07746</th>\n",
       "      <td>-0.430657</td>\n",
       "      <td>0.002513</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02968</th>\n",
       "      <td>0.397664</td>\n",
       "      <td>0.005640</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K19123</th>\n",
       "      <td>-0.395722</td>\n",
       "      <td>0.005901</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K01129</th>\n",
       "      <td>0.395698</td>\n",
       "      <td>0.005904</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00158</th>\n",
       "      <td>-0.392720</td>\n",
       "      <td>0.006324</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K07746 -0.430657  0.002513  0.944353\n",
       "K02968  0.397664  0.005640  0.944353\n",
       "K19123 -0.395722  0.005901  0.944353\n",
       "K01129  0.395698  0.005904  0.944353\n",
       "K00158 -0.392720  0.006324  0.944353"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta_PCV_v7 = meta_PCV.query(\"VisitCode == 'V7'\")\n",
    "ko_abunds_PCV_v7 = ko_abunds_v7[meta_PCV_v7.index]\n",
    "ko_abunds_PCV_v7 = ko_abunds_PCV_v7.loc[(ko_abunds_PCV_v7 > 0).sum(axis=1) > ko_abunds_PCV_v7.shape[1]*.2]\n",
    "v7_PCV_correlations = ko_abunds_PCV_v7.transpose().apply(spearmanr, b=meta_PCV_v7['median_mmNorm_PCV']).transpose()\n",
    "v7_PCV_correlations.columns = ['rho', 'p_value']\n",
    "v7_PCV_correlations['p_adj'] = p_adjust(v7_PCV_correlations['p_value'])\n",
    "v7_PCV_correlations = v7_PCV_correlations.sort_values('p_value')\n",
    "v7_PCV_correlations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "8a127806-22b3-48cf-ac8c-a3b8c2778589",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>module_size</th>\n",
       "      <th>in_in</th>\n",
       "      <th>in_out</th>\n",
       "      <th>out_in</th>\n",
       "      <th>out_out</th>\n",
       "      <th>odds_ratio</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>module</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>M00125</th>\n",
       "      <td>17</td>\n",
       "      <td>3</td>\n",
       "      <td>56</td>\n",
       "      <td>14</td>\n",
       "      <td>2191</td>\n",
       "      <td>8.383929</td>\n",
       "      <td>0.008817</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00911</th>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "      <td>57</td>\n",
       "      <td>6</td>\n",
       "      <td>2199</td>\n",
       "      <td>12.859649</td>\n",
       "      <td>0.016902</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00001</th>\n",
       "      <td>30</td>\n",
       "      <td>0</td>\n",
       "      <td>59</td>\n",
       "      <td>30</td>\n",
       "      <td>2175</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00740</th>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>59</td>\n",
       "      <td>12</td>\n",
       "      <td>2193</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00736</th>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>59</td>\n",
       "      <td>6</td>\n",
       "      <td>2199</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        module_size  in_in  in_out  out_in  out_out  odds_ratio   p_value  \\\n",
       "module                                                                      \n",
       "M00125           17      3      56      14     2191    8.383929  0.008817   \n",
       "M00911            8      2      57       6     2199   12.859649  0.016902   \n",
       "M00001           30      0      59      30     2175    0.000000  1.000000   \n",
       "M00740           12      0      59      12     2193    0.000000  1.000000   \n",
       "M00736            6      0      59       6     2199    0.000000  1.000000   \n",
       "\n",
       "        p_adj  \n",
       "module         \n",
       "M00125    1.0  \n",
       "M00911    1.0  \n",
       "M00001    1.0  \n",
       "M00740    1.0  \n",
       "M00736    1.0  "
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v7_PCV_sig_kos = set(v7_PCV_correlations.query('p_value < .05').index)\n",
    "v7_PCV_enrichment = measure_enrichment(v7_PCV_sig_kos, modules, all_module_kos)\n",
    "v7_PCV_enrichment.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "75401740-0e16-4bcb-bd88-22ed4e206673",
   "metadata": {},
   "source": [
    "Nothing significant at 6 months."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e9d642e9-dcb8-4f19-a721-51aaa9aecbec",
   "metadata": {},
   "source": [
    "### 1 year"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "id": "4bda0450-61d3-4fc3-acaf-069e217eb985",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K00605</th>\n",
       "      <td>-0.523103</td>\n",
       "      <td>0.000379</td>\n",
       "      <td>0.904062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K17733</th>\n",
       "      <td>-0.488290</td>\n",
       "      <td>0.001036</td>\n",
       "      <td>0.904062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K01725</th>\n",
       "      <td>0.480821</td>\n",
       "      <td>0.001268</td>\n",
       "      <td>0.904062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K01443</th>\n",
       "      <td>-0.444796</td>\n",
       "      <td>0.003164</td>\n",
       "      <td>0.904062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03625</th>\n",
       "      <td>-0.444715</td>\n",
       "      <td>0.003170</td>\n",
       "      <td>0.904062</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K00605 -0.523103  0.000379  0.904062\n",
       "K17733 -0.488290  0.001036  0.904062\n",
       "K01725  0.480821  0.001268  0.904062\n",
       "K01443 -0.444796  0.003164  0.904062\n",
       "K03625 -0.444715  0.003170  0.904062"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v9_DTAPHib_correlations = ko_abunds_v9.transpose().apply(spearmanr, b=meta_v9['median_mmNorm_DTAPHib']).transpose()\n",
    "v9_DTAPHib_correlations.columns = ['rho', 'p_value']\n",
    "v9_DTAPHib_correlations['p_adj'] = p_adjust(v9_DTAPHib_correlations['p_value'])\n",
    "v9_DTAPHib_correlations = v9_DTAPHib_correlations.sort_values('p_value')\n",
    "v9_DTAPHib_correlations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "a4638994-7f56-4062-a9ae-abed40402c18",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>module_size</th>\n",
       "      <th>in_in</th>\n",
       "      <th>in_out</th>\n",
       "      <th>out_in</th>\n",
       "      <th>out_out</th>\n",
       "      <th>odds_ratio</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>module</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>M00124</th>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>184</td>\n",
       "      <td>4</td>\n",
       "      <td>2162</td>\n",
       "      <td>5.875000</td>\n",
       "      <td>0.075493</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00373</th>\n",
       "      <td>13</td>\n",
       "      <td>3</td>\n",
       "      <td>183</td>\n",
       "      <td>10</td>\n",
       "      <td>2156</td>\n",
       "      <td>3.534426</td>\n",
       "      <td>0.077170</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00741</th>\n",
       "      <td>13</td>\n",
       "      <td>3</td>\n",
       "      <td>183</td>\n",
       "      <td>10</td>\n",
       "      <td>2156</td>\n",
       "      <td>3.534426</td>\n",
       "      <td>0.077170</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00896</th>\n",
       "      <td>7</td>\n",
       "      <td>2</td>\n",
       "      <td>184</td>\n",
       "      <td>5</td>\n",
       "      <td>2161</td>\n",
       "      <td>4.697826</td>\n",
       "      <td>0.100321</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00532</th>\n",
       "      <td>15</td>\n",
       "      <td>3</td>\n",
       "      <td>183</td>\n",
       "      <td>12</td>\n",
       "      <td>2154</td>\n",
       "      <td>2.942623</td>\n",
       "      <td>0.109425</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        module_size  in_in  in_out  out_in  out_out  odds_ratio   p_value  \\\n",
       "module                                                                      \n",
       "M00124            6      2     184       4     2162    5.875000  0.075493   \n",
       "M00373           13      3     183      10     2156    3.534426  0.077170   \n",
       "M00741           13      3     183      10     2156    3.534426  0.077170   \n",
       "M00896            7      2     184       5     2161    4.697826  0.100321   \n",
       "M00532           15      3     183      12     2154    2.942623  0.109425   \n",
       "\n",
       "        p_adj  \n",
       "module         \n",
       "M00124    1.0  \n",
       "M00373    1.0  \n",
       "M00741    1.0  \n",
       "M00896    1.0  \n",
       "M00532    1.0  "
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v9_DTAPHib_sig_kos = set(v9_DTAPHib_correlations.query('p_value < .05').index)\n",
    "v9_DTAPHib_enrichment = measure_enrichment(v9_DTAPHib_sig_kos, modules, all_module_kos)\n",
    "v9_DTAPHib_enrichment.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "e5e92264-f448-4a6e-a984-ef9b4974f12f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K12209</th>\n",
       "      <td>-0.509179</td>\n",
       "      <td>0.000932</td>\n",
       "      <td>0.647257</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K14138</th>\n",
       "      <td>0.508300</td>\n",
       "      <td>0.000954</td>\n",
       "      <td>0.647257</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K12206</th>\n",
       "      <td>-0.501359</td>\n",
       "      <td>0.001149</td>\n",
       "      <td>0.647257</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00197</th>\n",
       "      <td>0.495749</td>\n",
       "      <td>0.001331</td>\n",
       "      <td>0.647257</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K12203</th>\n",
       "      <td>-0.490245</td>\n",
       "      <td>0.001534</td>\n",
       "      <td>0.647257</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K12209 -0.509179  0.000932  0.647257\n",
       "K14138  0.508300  0.000954  0.647257\n",
       "K12206 -0.501359  0.001149  0.647257\n",
       "K00197  0.495749  0.001331  0.647257\n",
       "K12203 -0.490245  0.001534  0.647257"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta_PCV_v9 = meta_PCV.query(\"VisitCode == 'V9'\")\n",
    "ko_abunds_PCV_v9 = ko_abunds_v9[meta_PCV_v9.index]\n",
    "ko_abunds_PCV_v9 = ko_abunds_PCV_v9.loc[(ko_abunds_PCV_v9 > 0).sum(axis=1) > ko_abunds_PCV_v9.shape[1]*.2]\n",
    "v9_PCV_correlations = ko_abunds_PCV_v9.transpose().apply(spearmanr, b=meta_PCV_v9['median_mmNorm_PCV']).transpose()\n",
    "v9_PCV_correlations.columns = ['rho', 'p_value']\n",
    "v9_PCV_correlations['p_adj'] = p_adjust(v9_PCV_correlations['p_value'])\n",
    "v9_PCV_correlations = v9_PCV_correlations.sort_values('p_value')\n",
    "v9_PCV_correlations.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "a78aad68-45a3-4661-919f-0d657eae7173",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>module_size</th>\n",
       "      <th>in_in</th>\n",
       "      <th>in_out</th>\n",
       "      <th>out_in</th>\n",
       "      <th>out_out</th>\n",
       "      <th>odds_ratio</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>module</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>M00377</th>\n",
       "      <td>10</td>\n",
       "      <td>4</td>\n",
       "      <td>276</td>\n",
       "      <td>6</td>\n",
       "      <td>2143</td>\n",
       "      <td>5.176329</td>\n",
       "      <td>0.020639</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00124</th>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>277</td>\n",
       "      <td>3</td>\n",
       "      <td>2146</td>\n",
       "      <td>7.747292</td>\n",
       "      <td>0.023237</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00374</th>\n",
       "      <td>23</td>\n",
       "      <td>6</td>\n",
       "      <td>274</td>\n",
       "      <td>17</td>\n",
       "      <td>2132</td>\n",
       "      <td>2.746243</td>\n",
       "      <td>0.041166</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00895</th>\n",
       "      <td>10</td>\n",
       "      <td>3</td>\n",
       "      <td>277</td>\n",
       "      <td>7</td>\n",
       "      <td>2142</td>\n",
       "      <td>3.314079</td>\n",
       "      <td>0.098474</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M00652</th>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "      <td>278</td>\n",
       "      <td>3</td>\n",
       "      <td>2146</td>\n",
       "      <td>5.146283</td>\n",
       "      <td>0.104635</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        module_size  in_in  in_out  out_in  out_out  odds_ratio   p_value  \\\n",
       "module                                                                      \n",
       "M00377           10      4     276       6     2143    5.176329  0.020639   \n",
       "M00124            6      3     277       3     2146    7.747292  0.023237   \n",
       "M00374           23      6     274      17     2132    2.746243  0.041166   \n",
       "M00895           10      3     277       7     2142    3.314079  0.098474   \n",
       "M00652            5      2     278       3     2146    5.146283  0.104635   \n",
       "\n",
       "        p_adj  \n",
       "module         \n",
       "M00377    1.0  \n",
       "M00124    1.0  \n",
       "M00374    1.0  \n",
       "M00895    1.0  \n",
       "M00652    1.0  "
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v9_PCV_sig_kos = set(v9_PCV_correlations.query('p_value < .05').index)\n",
    "v9_PCV_enrichment = measure_enrichment(v9_PCV_sig_kos, modules, all_module_kos)\n",
    "v9_PCV_enrichment.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0f09a7ac-0d24-4ae0-85f5-67180f2dac8e",
   "metadata": {},
   "source": [
    "Nothing significant at 1 year."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "92de1d64-55d7-4dd5-8977-dd7bfefcf313",
   "metadata": {},
   "source": [
    "### Follow up signifcant 2 month results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "26d9793d-296e-4920-8448-04055577c8e0",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/503402355.py:1: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  m00060_ko_PCV_correlations_v6 = v6_PCV_correlations.loc[modules['M00060']].sort_values('p_value')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K00912</th>\n",
       "      <td>0.213833</td>\n",
       "      <td>0.168555</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>0.162338</td>\n",
       "      <td>0.298307</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00677</th>\n",
       "      <td>0.103745</td>\n",
       "      <td>0.507942</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09949</th>\n",
       "      <td>-0.094454</td>\n",
       "      <td>0.546860</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02527</th>\n",
       "      <td>0.091966</td>\n",
       "      <td>0.557515</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02536</th>\n",
       "      <td>-0.075204</td>\n",
       "      <td>0.631730</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00748</th>\n",
       "      <td>0.043642</td>\n",
       "      <td>0.781103</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02560</th>\n",
       "      <td>0.022501</td>\n",
       "      <td>0.886118</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02535</th>\n",
       "      <td>-0.008004</td>\n",
       "      <td>0.959375</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03269</th>\n",
       "      <td>0.006040</td>\n",
       "      <td>0.969334</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value  p_adj\n",
       "K00912  0.213833  0.168555    1.0\n",
       "K02517  0.162338  0.298307    1.0\n",
       "K00677  0.103745  0.507942    1.0\n",
       "K09949 -0.094454  0.546860    1.0\n",
       "K02527  0.091966  0.557515    1.0\n",
       "K02536 -0.075204  0.631730    1.0\n",
       "K00748  0.043642  0.781103    1.0\n",
       "K02560  0.022501  0.886118    1.0\n",
       "K02535 -0.008004  0.959375    1.0\n",
       "K03269  0.006040  0.969334    1.0"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m00060_ko_PCV_correlations_v6 = v6_PCV_correlations.loc[modules['M00060']].sort_values('p_value')\n",
    "m00060_ko_PCV_correlations_v6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "83f8d053-ff1c-40d3-9b2f-f118160fb794",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/2268288291.py:1: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  m00060_ko_PCV_correlations_v7 = v7_PCV_correlations.loc[modules['M00060']].sort_values('p_value')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>0.169519</td>\n",
       "      <td>0.254646</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00912</th>\n",
       "      <td>0.154949</td>\n",
       "      <td>0.298354</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02527</th>\n",
       "      <td>0.127313</td>\n",
       "      <td>0.393778</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00748</th>\n",
       "      <td>0.118640</td>\n",
       "      <td>0.427041</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00677</th>\n",
       "      <td>0.114477</td>\n",
       "      <td>0.443553</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02560</th>\n",
       "      <td>-0.112974</td>\n",
       "      <td>0.449601</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02536</th>\n",
       "      <td>0.090888</td>\n",
       "      <td>0.543467</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02535</th>\n",
       "      <td>-0.075393</td>\n",
       "      <td>0.614494</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03269</th>\n",
       "      <td>0.051573</td>\n",
       "      <td>0.730641</td>\n",
       "      <td>0.950050</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09949</th>\n",
       "      <td>-0.014122</td>\n",
       "      <td>0.924942</td>\n",
       "      <td>0.981659</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K02517  0.169519  0.254646  0.944353\n",
       "K00912  0.154949  0.298354  0.944353\n",
       "K02527  0.127313  0.393778  0.944353\n",
       "K00748  0.118640  0.427041  0.944353\n",
       "K00677  0.114477  0.443553  0.944353\n",
       "K02560 -0.112974  0.449601  0.944353\n",
       "K02536  0.090888  0.543467  0.944353\n",
       "K02535 -0.075393  0.614494  0.944353\n",
       "K03269  0.051573  0.730641  0.950050\n",
       "K09949 -0.014122  0.924942  0.981659"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m00060_ko_PCV_correlations_v7 = v7_PCV_correlations.loc[modules['M00060']].sort_values('p_value')\n",
    "m00060_ko_PCV_correlations_v7"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "92674c8a-2478-41c7-ab2c-1f9ac1fe0ea4",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/3156879568.py:1: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  m00060_ko_PCV_correlations_v9 = v9_PCV_correlations.loc[modules['M00060']].sort_values('p_value')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K00677</th>\n",
       "      <td>-0.385830</td>\n",
       "      <td>0.015272</td>\n",
       "      <td>0.647257</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02536</th>\n",
       "      <td>-0.329352</td>\n",
       "      <td>0.040619</td>\n",
       "      <td>0.647257</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03269</th>\n",
       "      <td>-0.312753</td>\n",
       "      <td>0.052558</td>\n",
       "      <td>0.647257</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02527</th>\n",
       "      <td>-0.302632</td>\n",
       "      <td>0.061120</td>\n",
       "      <td>0.647257</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>-0.252024</td>\n",
       "      <td>0.121673</td>\n",
       "      <td>0.659296</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00748</th>\n",
       "      <td>-0.250810</td>\n",
       "      <td>0.123541</td>\n",
       "      <td>0.661062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00912</th>\n",
       "      <td>-0.208097</td>\n",
       "      <td>0.203638</td>\n",
       "      <td>0.714410</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09949</th>\n",
       "      <td>-0.102582</td>\n",
       "      <td>0.534319</td>\n",
       "      <td>0.918052</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02535</th>\n",
       "      <td>-0.080875</td>\n",
       "      <td>0.624536</td>\n",
       "      <td>0.938742</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02560</th>\n",
       "      <td>-0.014184</td>\n",
       "      <td>0.931702</td>\n",
       "      <td>0.988922</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K00677 -0.385830  0.015272  0.647257\n",
       "K02536 -0.329352  0.040619  0.647257\n",
       "K03269 -0.312753  0.052558  0.647257\n",
       "K02527 -0.302632  0.061120  0.647257\n",
       "K02517 -0.252024  0.121673  0.659296\n",
       "K00748 -0.250810  0.123541  0.661062\n",
       "K00912 -0.208097  0.203638  0.714410\n",
       "K09949 -0.102582  0.534319  0.918052\n",
       "K02535 -0.080875  0.624536  0.938742\n",
       "K02560 -0.014184  0.931702  0.988922"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m00060_ko_PCV_correlations_v9 = v9_PCV_correlations.loc[modules['M00060']].sort_values('p_value')\n",
    "m00060_ko_PCV_correlations_v9"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "8743a9ad-8c4e-4fec-8fba-5b5a0dd7e1bc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>0.505253</td>\n",
       "      <td>0.000883</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02527</th>\n",
       "      <td>0.373358</td>\n",
       "      <td>0.017646</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00912</th>\n",
       "      <td>0.364353</td>\n",
       "      <td>0.020812</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00748</th>\n",
       "      <td>0.340901</td>\n",
       "      <td>0.031349</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02536</th>\n",
       "      <td>0.335084</td>\n",
       "      <td>0.034550</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03269</th>\n",
       "      <td>0.332270</td>\n",
       "      <td>0.036193</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00677</th>\n",
       "      <td>0.313884</td>\n",
       "      <td>0.048565</td>\n",
       "      <td>0.794428</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09949</th>\n",
       "      <td>0.174045</td>\n",
       "      <td>0.282787</td>\n",
       "      <td>0.911663</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K16363</th>\n",
       "      <td>0.139501</td>\n",
       "      <td>0.390608</td>\n",
       "      <td>0.969263</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02535</th>\n",
       "      <td>0.026829</td>\n",
       "      <td>0.869470</td>\n",
       "      <td>0.999083</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K02517  0.505253  0.000883  0.794428\n",
       "K02527  0.373358  0.017646  0.794428\n",
       "K00912  0.364353  0.020812  0.794428\n",
       "K00748  0.340901  0.031349  0.794428\n",
       "K02536  0.335084  0.034550  0.794428\n",
       "K03269  0.332270  0.036193  0.794428\n",
       "K00677  0.313884  0.048565  0.794428\n",
       "K09949  0.174045  0.282787  0.911663\n",
       "K16363  0.139501  0.390608  0.969263\n",
       "K02535  0.026829  0.869470  0.999083"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m00866_ko_PCV_correlations_v5 = v5_PCV_correlations.loc[[i for i in modules['M00866'] if i in v5_PCV_correlations.index]].sort_values('p_value')\n",
    "m00866_ko_PCV_correlations_v5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "b6c894bc-9720-4b89-84af-5318aab32d38",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/3114645466.py:1: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  m00866_ko_PCV_correlations_v6 = v6_PCV_correlations.loc[modules['M00866']].sort_values('p_value')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K00912</th>\n",
       "      <td>0.213833</td>\n",
       "      <td>0.168555</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>0.162338</td>\n",
       "      <td>0.298307</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00677</th>\n",
       "      <td>0.103745</td>\n",
       "      <td>0.507942</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09949</th>\n",
       "      <td>-0.094454</td>\n",
       "      <td>0.546860</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02527</th>\n",
       "      <td>0.091966</td>\n",
       "      <td>0.557515</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02536</th>\n",
       "      <td>-0.075204</td>\n",
       "      <td>0.631730</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09778</th>\n",
       "      <td>-0.067975</td>\n",
       "      <td>0.664935</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00748</th>\n",
       "      <td>0.043642</td>\n",
       "      <td>0.781103</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K16363</th>\n",
       "      <td>-0.009090</td>\n",
       "      <td>0.953869</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02535</th>\n",
       "      <td>-0.008004</td>\n",
       "      <td>0.959375</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03269</th>\n",
       "      <td>0.006040</td>\n",
       "      <td>0.969334</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value  p_adj\n",
       "K00912  0.213833  0.168555    1.0\n",
       "K02517  0.162338  0.298307    1.0\n",
       "K00677  0.103745  0.507942    1.0\n",
       "K09949 -0.094454  0.546860    1.0\n",
       "K02527  0.091966  0.557515    1.0\n",
       "K02536 -0.075204  0.631730    1.0\n",
       "K09778 -0.067975  0.664935    1.0\n",
       "K00748  0.043642  0.781103    1.0\n",
       "K16363 -0.009090  0.953869    1.0\n",
       "K02535 -0.008004  0.959375    1.0\n",
       "K03269  0.006040  0.969334    1.0"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m00866_ko_PCV_correlations_v6 = v6_PCV_correlations.loc[modules['M00866']].sort_values('p_value')\n",
    "m00866_ko_PCV_correlations_v6"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "dc736d99-5d61-4f7c-80e9-35bcbf458cfa",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/2210711243.py:1: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  m00866_ko_PCV_correlations_v7 = v7_PCV_correlations.loc[modules['M00866']].sort_values('p_value')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K09778</th>\n",
       "      <td>-0.230849</td>\n",
       "      <td>0.118483</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>0.169519</td>\n",
       "      <td>0.254646</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00912</th>\n",
       "      <td>0.154949</td>\n",
       "      <td>0.298354</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02527</th>\n",
       "      <td>0.127313</td>\n",
       "      <td>0.393778</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00748</th>\n",
       "      <td>0.118640</td>\n",
       "      <td>0.427041</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00677</th>\n",
       "      <td>0.114477</td>\n",
       "      <td>0.443553</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K16363</th>\n",
       "      <td>0.100277</td>\n",
       "      <td>0.502444</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02536</th>\n",
       "      <td>0.090888</td>\n",
       "      <td>0.543467</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02535</th>\n",
       "      <td>-0.075393</td>\n",
       "      <td>0.614494</td>\n",
       "      <td>0.944353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03269</th>\n",
       "      <td>0.051573</td>\n",
       "      <td>0.730641</td>\n",
       "      <td>0.950050</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09949</th>\n",
       "      <td>-0.014122</td>\n",
       "      <td>0.924942</td>\n",
       "      <td>0.981659</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K09778 -0.230849  0.118483  0.944353\n",
       "K02517  0.169519  0.254646  0.944353\n",
       "K00912  0.154949  0.298354  0.944353\n",
       "K02527  0.127313  0.393778  0.944353\n",
       "K00748  0.118640  0.427041  0.944353\n",
       "K00677  0.114477  0.443553  0.944353\n",
       "K16363  0.100277  0.502444  0.944353\n",
       "K02536  0.090888  0.543467  0.944353\n",
       "K02535 -0.075393  0.614494  0.944353\n",
       "K03269  0.051573  0.730641  0.950050\n",
       "K09949 -0.014122  0.924942  0.981659"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m00866_ko_PCV_correlations_v7 = v7_PCV_correlations.loc[modules['M00866']].sort_values('p_value')\n",
    "m00866_ko_PCV_correlations_v7"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "e67f915c-80d2-413b-b275-37cc421792ae",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/6t/1w2t3qmd1rx81mfw9sq_tfpr0000gn/T/ipykernel_29921/3838991611.py:1: FutureWarning: Passing a set as an indexer is deprecated and will raise in a future version. Use a list instead.\n",
      "  m00866_ko_PCV_correlations_v9 = v9_PCV_correlations.loc[modules['M00866']].sort_values('p_value')\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rho</th>\n",
       "      <th>p_value</th>\n",
       "      <th>p_adj</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>K00677</th>\n",
       "      <td>-0.385830</td>\n",
       "      <td>0.015272</td>\n",
       "      <td>0.647257</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02536</th>\n",
       "      <td>-0.329352</td>\n",
       "      <td>0.040619</td>\n",
       "      <td>0.647257</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K16363</th>\n",
       "      <td>-0.319903</td>\n",
       "      <td>0.047110</td>\n",
       "      <td>0.647257</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K03269</th>\n",
       "      <td>-0.312753</td>\n",
       "      <td>0.052558</td>\n",
       "      <td>0.647257</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02527</th>\n",
       "      <td>-0.302632</td>\n",
       "      <td>0.061120</td>\n",
       "      <td>0.647257</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02517</th>\n",
       "      <td>-0.252024</td>\n",
       "      <td>0.121673</td>\n",
       "      <td>0.659296</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00748</th>\n",
       "      <td>-0.250810</td>\n",
       "      <td>0.123541</td>\n",
       "      <td>0.661062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K00912</th>\n",
       "      <td>-0.208097</td>\n",
       "      <td>0.203638</td>\n",
       "      <td>0.714410</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09778</th>\n",
       "      <td>-0.150924</td>\n",
       "      <td>0.359077</td>\n",
       "      <td>0.857637</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K09949</th>\n",
       "      <td>-0.102582</td>\n",
       "      <td>0.534319</td>\n",
       "      <td>0.918052</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>K02535</th>\n",
       "      <td>-0.080875</td>\n",
       "      <td>0.624536</td>\n",
       "      <td>0.938742</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             rho   p_value     p_adj\n",
       "K00677 -0.385830  0.015272  0.647257\n",
       "K02536 -0.329352  0.040619  0.647257\n",
       "K16363 -0.319903  0.047110  0.647257\n",
       "K03269 -0.312753  0.052558  0.647257\n",
       "K02527 -0.302632  0.061120  0.647257\n",
       "K02517 -0.252024  0.121673  0.659296\n",
       "K00748 -0.250810  0.123541  0.661062\n",
       "K00912 -0.208097  0.203638  0.714410\n",
       "K09778 -0.150924  0.359077  0.857637\n",
       "K09949 -0.102582  0.534319  0.918052\n",
       "K02535 -0.080875  0.624536  0.938742"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m00866_ko_PCV_correlations_v9 = v9_PCV_correlations.loc[modules['M00866']].sort_values('p_value')\n",
    "m00866_ko_PCV_correlations_v9"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
